Anzeige
Archiv - Navigation
1140to1144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe VBA-WorkcheetChange-erkennt Zelle nicht! =(

Hilfe VBA-WorkcheetChange-erkennt Zelle nicht! =(
BamBi
Hallo
Ich hab mal wieder ein Problem und ich weiß nichtmal annähernd,
wie ich das lösen könnte....
Ich hoff, Ihr könnt mir helfen
Ich habe im VBA Code meines Tabellenblattes mit Hilfe von
Worksheet_Change einen "Eventmakro" erstellt,
sprich wenn ich eine zelle ändere, rufe ich einen Makro auf
Das funktioniert ja alles super
bloß..., jetzt möchte ich die Zelle nicht durch den Handschriftlichen Eintrag
von "x" die UserForm starten, sondern in der Zelle steht eine Formel,
Wenn (A5="Tag","x","") sollt er automatisch in dieses Feld ein X machen
und anschließend die Userform öffnen, in der ich dann auswählen kann
zwischen Morgen / Mittag / Abend.
Es funktioniert bis zum Schritt wo er mir das "x" in die Zelle reinschreibt,
sprich in meinem "Worksheet_Change" habe ich nur das ändern der Zelle
mit der "Tastatureingabe" defininert...
Wie kann ich diesem Code sagen, dass er das Resultat der Wennfunktion
nimmt, in diesem falle ja das "x", um die Userform zu öffnen.
Ich hoffe..., meine Beschreibung ist nicht zu kompliziert...
Liebste Grüße.., Bambi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Hilfe VBA-WorkcheetChange-erkennt Zelle nicht! =(
02.03.2010 23:17:07
Beate
Hallo Bambi,
wenn die Zelländerung durch Formelberechnung entsteht, musst du ein Worksheet_Calculate()-Makro einsetzen statt eines Worksheet_Change()-Makros.
Gruß,
Beate
AW: Hilfe VBA-WorkcheetChange-erkennt Zelle nicht! =(
02.03.2010 23:22:02
BamBi
Guten Abend:)
Danke für die schnelle hilfe..,
ich versteh, was Du mir geantwortet hast,
aber ich weiß nicht, wie ich das schreiben soll!? :(
AW: Hilfe VBA-WorkcheetChange-erkennt Zelle nicht! =(
02.03.2010 23:43:54
Beate
Hallo Bambi,
das wäre deine Tabelle mit der Formel in C5:
 ABC
5Tag x

Formeln der Tabelle
ZelleFormel
C5=WENN(A5="Tag";"x";"")

Dann das Makro so:
Private Sub Worksheet_Calculate()
    If Range("C5").Value = "x" Then UserForm1.Show
End Sub


Zelladresse und UserForm-Nr. anpassen! Das Makro gehört ins Codefenster der Tabelle.
Das hat aber den Nachteil, dass bei jeder Berechnung in der Tabelle, also auch wenn bereits ein "x" in C5 steht, die Userform anspringt.
Daher würde ich es beim Worksheet_Change bezogen auf A5 belassen:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A5").Value = "Tag" Then UserForm1.Show
End Sub


Gruß,
Beate
Anzeige
Korrektur
02.03.2010 23:47:20
Beate
Beim obigen Worksheet_Change-Makro habe ich eine wichtige Zeile vergessen:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A5")) Is Nothing Then Exit Sub
    If Range("A5").Value = "Tag" Then UserForm1.Show
End Sub

Gruß,
Beate
Anzeige
Schlage vor, nimm noch ein _SelectionChange-...
03.03.2010 01:08:39
Luc:-?
…Ereignis dazu, Bambi,
das, bei If Not Intersect(Target, Range("A5")) Is Nothing Then mit Target.Calculate oder With Target: .Formula = .Formula: End With eine Neuberechnung der Zelle veranlasst. Alternativ könnte natürlich auch schon hier bei Target = "x" die UF gestartet wdn. Allerdings musst du die Zelle dann erst auswählen. Da du aber dann sowieso in der UF irgendwas auswählen willst, wohl um einen entsprechenden Blatteintrag vorzunehmen bzw zu veranlassen, könntest du natürlich auch gleich das _BeforeDoubleClick-Ereignis (auf beliebiger Zelle) verwenden und dort dann nach dem Inhalt von A5 fragen. _Calculate wird ja auch nur ausgeführt, wenn gerade irgendwas berechnet wird, ist also - wie auch Beate schreibt - eigentl nicht zu empfehlen.
Fazit: Du solltest also noch mal die Gesamtorganisation deines Vorhabens, also den konkreten Ablauf überdenken, dann müsste sich das, was sinnvoll möglich ist, quasi von allein ergeben.
Man kann das auch viel direkter über die Fml selbst steuern, wenn sie eine spezifische udFkt enthält, die das veranlasst, aber das nur nebenbei, denn so etwas steht auf einem anderen „vbLevel-Blatt“… ;-) Allerdings muss das in deinem konkreten Fall auch nicht gerade sinnvoll sein!
Gruß Luc :-?
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige