Spalte u Zeile innerhalb eines Makros feststellen | Herbers Excel-Forum


Betrifft: Spalte u Zeile innerhalb eines Makros feststellen
von: Joachim K
Geschrieben am: 10.11.2009 12:57:00

Ich benötige innerhalb eines VBA-Makros die Information, von welcher Spalte und Zeile die Funktion aufgrufen wurde.
Ich will diese Information aber nicht als Parameter in den Funktionsaufruf übernehmen!
Mit ActiveCell und Range komme ich nicht weiter, da es sich nur einen definierten Bereich bezieht.
ThanX vorab
Joachim K

Betrifft: AW: Spalte u Zeile innerhalb eines Makros feststellen
von: Ramses
Geschrieben am: 10.11.2009 13:03:09
Hallo
Die VBA-Hilfe ist nicht so schlecht wie ihr Ruf
ActiveCell.Row
ActiveCell.Column
bzw. im Ereignismakro
Target.Row
Target.Column
Oder bei einer Mehrfachmarkierung
Selection.Cells(1,1).Row
Selection.Cells(1,1).Column
damit wird die linke obere Zeile/Spalte der Markierung ausgegeben
Gruss Rainer

Betrifft: Selection.Cells(1,1).Row
von: Rudi Maintaire
Geschrieben am: 10.11.2009 13:20:22
Hallo Rainer
Selection.Row/ .Column reicht auch.
Gruß
Rudi

Betrifft: AW: Selection.Cells(1,1).Row
von: Joachim K
Geschrieben am: 10.11.2009 13:53:10
Wahrscheinlich habe ich mich noch nicht richtig ausgedrückt.
Wenn sich aufgrund der Vorschläge die aktive Zelle (Cursorpositionierung) verändert, wird durch eine Aktualisierung immer die Spalte/Zeile der Zellposition ausgeworfen.
Ich möchte nur die Zeile/Spalte der Zelle, in der sich der Formelaufruf (Funktionsaufruf) befindet.
Grüße
Joachim K

Betrifft: das geht nicht. owT
von: Rudi Maintaire
Geschrieben am: 10.11.2009 14:01:42


Betrifft: AW: Spalte u Zeile innerhalb eines Makros feststellen
von: fcs
Geschrieben am: 10.11.2009 14:23:56
Hallo Joachim,
wie von dem Mitantwortern bereits erwähnt - ohne Parameter-Übergabe geht es nicht.
Wenn du in einer benutzerdefinierten Funktion, die in der Tabelle benutzt wird, die Zellinformation benötigst, dann muss du die Zelle als Range-Parameter übergeben.
Beispiel:
Formel in Zelle B1:

=MeTest(A1;B1)
Beispiel für benutzedefinierte Funktion:
Function MeTest(Wert As Double, Zelle As Range)
  Dim Spalte As Long, Zeile As Long
  'Zelle ist Zelle, deren Zeilen/Spalten-Information verarbeitet werden soll, _
      kann auch die Zelle sein in der die Formel steht
  Spalte = Zelle.Column
  Zeile = Zelle.Row
  
  
  MeTest = Wert * 1000 * (Zeile + Spalte)
End Function
Gruß
Franz

Betrifft: AW: aus der Excelhilfe zu .CALLER ...
von: ingoG
Geschrieben am: 10.11.2009 14:53:52
Hallo Joachim,
versuchs mal so:

Function MeTest()
        MeTest = Application.Caller.Row + Application.Caller.Column
End Function
Gruß Ingo
PS eine Rückmeldung wäre nett...

Betrifft: AW: aus der Excelhilfe zu .CALLER ...
von: Joachim K
Geschrieben am: 10.11.2009 15:46:30
Hallo Ingo,
SUPER das wars!
Caller kannte ich vorher noch nicht !
ThanX again
Joachim K

Betrifft: Gerne, danke für die Rückmeldung OT
von: ingoG
Geschrieben am: 10.11.2009 15:55:41
.

Betrifft: Na endlich hat Einer an .Caller gedacht,...
von: Luc:-?
Geschrieben am: 10.11.2009 19:14:43
...Ingo,
Respekt! Da ich sehr viele udF schreibe, brauche ich das öfter. Die Meisten schreiben wohl nur Subroutinen, da braucht man das nicht, weil aus einer SubProc aufgerufene udFktt damit natürlich einen Fehler liefern. Das muss ich dann stets abfangen, damit die udF auch so benutzt wdn kann...
Gruß Luc :-?

Beiträge aus den Excel-Beispielen zum Thema "Spalte u Zeile innerhalb eines Makros feststellen"