leider bin ich nicht sehr gut mit makros schreiben, aber in etwa sollte es
"wenn A5>0, dann Starte Makro xy, sonst "nichts"
gruss
Vincent
Code in das Codefenster der entsprechenden Tabelle
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A5" Then Exit Sub
If Target <> "" Then
'Makroaufruf
End If
End Sub
mfg Herbert
auch die Help konnte keine infos geben zum them Makroaufruf
gruss
vincent
"Herbert Taferner" schrieb:
"Herbert Taferner" schrieb:
> Hallo Vincent,
"vincent" schrieb:
> ich hab noch weiter gelesen und versucht zu verstehen.
> -------------diesen code habe ich jetzt ------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Address(0, 0) <> "A5" Then Exit Sub
> If Target <> "" Then 'Modul2.Add_line_top'
> End If
> End Sub
> ------------end code -----------------------------------------
Der Code muss ins CodeModul des betreffenden Tabellenblattes kopiert werden.
Also im VBA-Editor einen Doppelklick auf dein Tabellenblatt und dann dort
einfügen.
> zur zeile
> If Target.Address(0, 0) <> "A5" Then Exit Sub
> die verstehe ich wobei was ist die Target.Address (=Ziel.Adresse) woher
> weiss er die?
Das Ganze ist ein Ereignis-Makro, dass dann ausgelöst wird, wenn ein Wert in
einer Zelle geändert (neu eingegebn) wird.
Target wird als Parameter übergeben und ist der Range der verändert worden
ist, sprich in dem der/die Werte(e) verändert wurde.
Mehr zum Change-Ereignis findest Du auch in der Online-Hilfe.
--
Mit freundlichen Grüssen
Thomas Ramel (@Web-Interface)
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003]
> ich hab noch weiter gelesen und versucht zu verstehen.
> -------------diesen code habe ich jetzt ------------------
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Address(0, 0) <> "A5" Then Exit Sub
> If Target <> "" Then 'Modul2.Add_line_top'
> End If
> End Sub
> ------------end code -----------------------------------------
> zur zeile
> If Target.Address(0, 0) <> "A5" Then Exit Sub
> die verstehe ich wobei was ist die Target.Address (=Ziel.Adresse) woher
> weiss er die?
einmal plump gesagt das ist genau die Adresse wo gerade was geändert wurde,
und wenn die eben A5 ist dann wird weitergearbeitet sonst wird das
Ereignis nicht weiter beachtet, daher erspart man sich die Durcharbeitung
der folgenden Codezeilen wenn dafür kein Bedarf ist
das sollte reichen,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A5" Then Exit Sub
If Target <> "" Then
Call Add_line_top
End If
End Sub
wenn du den Makroaufruf in die gleiche Zeile stellst, dann musst du auch das
End If entfernen das ist dann nicht mehr nötig
mfg Herbert
gruss
Vincent
PS: Hoffentlich schreibe ich nicht zu verwirrt ;-)
"Thomas Ramel" schrieb:
> Grüezi vincent
>
> "vincent" schrieb:
>
> > ich hab noch weiter gelesen und versucht zu verstehen.
> > -------------diesen code habe ich jetzt ------------------
> > Private Sub Worksheet_Change(ByVal Target As Range)
> > If Target.Address(0, 0) <> "A5" Then Exit Sub
> > If Target <> "" Then 'Modul2.Add_line_top'
> > End If
> > End Sub
> > ------------end code -----------------------------------------
>
> Der Code muss ins CodeModul des betreffenden Tabellenblattes kopiert werden.
> Also im VBA-Editor einen Doppelklick auf dein Tabellenblatt und dann dort
> einfügen.
Der obgenannte Code ist im Blatt Tabelle6
Das Makro ist im Modul2 drinn
also muss ich aus dem Modul2 den ganzen MakroCode kopieren
"Herbert Taferner" schrieb:
> SUPER Vielen Dank!
> es klappt bestens
Bitte gern !
mfg Herbert