SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 20.05.2013 22:18:10

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Name der aktivierten Zelle?
BeitragVerfasst: 04.03.2008 19:39:32 
Offline

Registriert: 22.01.2008 18:06:41
Beiträge: 44
Tach Allerseits,

nach Handbuch liefert der Befehl "pm.ActiveSheet.Selection.Row", bzw. "pm.ActiveSheet.Selection.Column" die Zeilen-, bzw. Spaltenzahl einer aktivierten Zelle.

Mit "pm.ActiveSheet.Range("$A:$IV").Item(Z, S).Value" kann man etwas in die Zelle (Z,S) hineinschreiben und dann z.B. 5 Spalten nach rechts und 7 Zeilen nach unten wandern.

Jetzt mein Problem: "Welcher Befehl liefert mir in diesem Moment den Namen(!) (in der Form z.B. "B12" oder "C23") der aktivierten Zelle?"

MfG
fitti


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Name der aktivierten Zelle?
BeitragVerfasst: 05.03.2008 09:27:09 
Offline

Registriert: 02.08.2004 12:35:05
Beiträge: 309
Wohnort: Nürnberg
Hallo,

diese Funktion gibt es in BasicMaker leider nicht. Sie könnten Sie allerdings selbst nachprogrammieren. Schauen Sie hierzu bitte einmal in die integrierte Hilfe unter dem Stichwort "Funktionen" (Unterprogramme und Funktionen) nach.

_________________
Alexander Mühl
SoftMaker Software GmbH


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Name der aktivierten Zelle?
BeitragVerfasst: 05.03.2008 10:28:04 
Offline

Registriert: 22.01.2008 18:06:41
Beiträge: 44
Hallo Alexander,

das Nachprogrammieren ist nicht schlimm. Ich hatte auch keine fertige Lösung erwartet - lediglich vielleicht einen Tipp oder einen Hinweis, bei welchem BasicMaker-Befehl ich am besten mit meiner Suche beginne oder - vor allem - mit welcher Idee ich zum Ziel komme.

Vielen Dank nochmals!

MfG
fitti


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Name der aktivierten Zelle?
BeitragVerfasst: 05.03.2008 11:44:40 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 03.12.2003 14:32:06
Beiträge: 2977
Trickreich ist ja nur die Umrechnung der Spalten in Buchstaben; die Zeilen sind trivial.

Das funktioniert etwa so...
Code:
sub x
   dim i as integer
   print CellName(1, 1)
   print CellName(10, 5)
   print CellName(27, 5)
   print CellName(52, 5)

   for i = 1 to 256
      print i, CellName(i, 5)
   next

end sub

function CellName(col as Integer, row as Integer) as string
   dim sCol, sRow as string

   sRow = Str(row)

   if col <= 26 then
      sCol = chr(64 + col)
   else
      sCol = chr(64 + int((col - 1) / 26)) + chr(65 + (col - 1) mod 26)
   end if

   CellName = sCol + sRow
end function

_________________
Martin Kotulla
SoftMaker Software GmbH


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Name der aktivierten Zelle?
BeitragVerfasst: 05.03.2008 19:16:28 
Offline

Registriert: 22.01.2008 18:06:41
Beiträge: 44
Hallo Martin,

dein Programm ist prima, ich werde den Code übernehmen - wenn ich darf. Nach Alexanders Hinweis war mein Ehrgeiz natürlich geweckt, und ich habe folgende Lösung zu bieten (siehe unten).

Deine Lösung liefert mir den Zellennamen, wenn ich Zeilen- und Spaltennummer vorgebe (kann ich gut gebrauchen); meine Lösung liefert den Zellennamen des aktuellen Standortes im Tabellenblatt. Ich denke beide Funktionen ergänzen sich gut.

Meine Frage noch an den Profi: "Habe ich umständlich programmiert oder kann man den Stil gelten lassen?" Ich bin nämlich noch neu im Metier und möchte besser werden - BasicMaker find ich gut!
Darüberhinaus würde ich mir eine Foren-Ecke wünschen, in der die Lösungen für derartige Probleme zur Ansicht/zum Download bereitstehen. Man könnte viel lernen und müsste das Rad nicht immer wieder neu erfinden. Hätte ich deine Lösung früher gehabt, hätte ich eine Menge Zeit bei meinem Ausgangsproblem gespart.

So und hier ist meine Lösung:

'*******************************************************
Function AktSpalte() as Long
AktSpalte = pm.ActiveSheet.Selection.Column
End Function

Function AktZeile() as Long
AktZeile = pm.ActiveSheet.Selection.Row
End Function

Function HoleSpaltenName() as String
Dim a as Integer, b as Integer
Dim SpaltenNummer as Long
Dim erg as String

SpaltenNummer = AktSpalte
a = Int(SpaltenNummer / 26)
If SpaltenNummer Mod 26 = 0 Then
a = a - 1
End If
b = SpaltenNummer - a * 26
If a < 1 Then '***** Spalten 'A-Z'
erg = Chr(b + 64)'***** Spalten 'A-Z'
Else
erg = Chr(a + 64) & Chr(b + 64)'***** Spalten 'AA-IV'
End If
HoleSpaltenName = erg & Str(AktZeile)'***** Zeilennummer noch anhängen
End Function
'*******************************************************

MfG
fitti


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Name der aktivierten Zelle?
BeitragVerfasst: 31.03.2008 10:00:22 
Zitat:
Darüberhinaus würde ich mir eine Foren-Ecke wünschen, in der die Lösungen für derartige Probleme zur Ansicht/zum Download bereitstehen. Man könnte viel lernen und müsste das Rad nicht immer wieder neu erfinden. Hätte ich deine Lösung früher gehabt, hätte ich eine Menge Zeit bei meinem Ausgangsproblem gespart.


Fanfare und Trommelwirbel. Respekt und Anerkennung für diesen Vorschlag.
[X] Dafür


Nach oben
  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de