Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Makro automatisch nach wenn Bedingung starten

Makro automatisch nach wenn Bedingung starten
18.12.2012 15:27:13
Dominic
Hallo zusammen,
ich habe mir in Excel eine umfangreiche Datei zusammengebastelt und würde gerne mittels eines VBA Schripts bestimmte Zeilen ausblenden lassen sofern eine Bedingung auf diese Zeilen zutrifft. Das habe ich mittels folgenden Codes bereits erreichen können:
"[...
Sub ZeileAusblenden()
iEnde = Range("CU360").End(xlUp).Row
Rows("10:360").EntireRow.Hidden = False
For i = 13 To iEnde
If Range("CU" & i) = "ausblenden" Then Range("CU" & i).EntireRow.Hidden = True
Next i
End Sub

...]"
Mittels diesen Codes wird die Spalte CU auf den Hinweis "ausblenden" überprüft und dann bei erfolgreicher Prüfung die Spalte ausgeblendet. Die Spalten Einblendung erreiche ich durch einen Befehl vor der Schleife.
Nun möchte ich aber dieses Makro automatisch und völlig selbstständig starten lassen sobald in meiner Excel Tabelle der Wert in A1 den Wert 1 ODER 2 enthält.
Tricky hierbei ist wiederrum, dass dieser Wert nicht(!) manuell sondern über ein Formularsteuerelement in A1 ausgegeben wird erzeugt wird. Die Zellverknüpfung des Steuerelements liegt also bei $A$1.
Wie erreiche ich nun, dass dieses Makro bei Wert 1 oder 2 in A1 gestartet wird, sobald in meinem Steuerelement ( Drop Down Menü) die entsprechenden Werte ausgewählt
werden?
Danke im Voraus!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 16:46:10
Peter
Wie wäre es so:
In das entsprechende Tabellenblatt im VBA-Editor folgendes schreiben:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Call 'Makroname'
End Sub
Wäre jetzt bei jeder Änderung in der Zelle A1. Die Abfrage welcher Wert darin steht und ob das Makro dann ausgeführt werden soll, kannst Du ja in Dein Makro reinschreiben mit:
If cells(1,1)="1" or cells(1,1) = "2" then
Dein Makro
End if
Gruß

AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 16:48:40
Peter
Wie wäre es so:
In das entsprechende Tabellenblatt im VBA-Editor folgendes schreiben:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Call 'Makroname'
End Sub
Wäre jetzt bei jeder Änderung in der Zelle A1. Die Abfrage welcher Wert darin steht und ob das Makro dann ausgeführt werden soll, kannst Du ja in Dein Makro reinschreiben mit:
If cells(1,1)="1" or cells(1,1) = "2" then
Dein Makro
End if
Gruß

Anzeige
AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 17:02:40
Dominic
Hi Peter,
das funktioniert soweit schon mal ganz gut. Aber es ist noch nicht so wie ich es haben wollte.
Wenn ich jetzt in meinem Drop Down Menü eine Auswahl tätige und sich somit der Wert in Zelle A1 ändert, geschieht zunächst einmal nichts. Heißt das Makro wird nicht ausgeführt. Wenn ich aber dann die Zelle A1 nur kurz anklicke / markiere, wird die vermeintliche "Änderung" bemerkt, und Excel führt das Makro direkt aus. Ich denke das hängt mit deinem "Select" befehl zusammen.
Kann man das noch so abändern, dass die Aktualisierung automatisch startet ohne das ich A1 anklicken muss? Also nur basierend auf meiner Auswahl des Drop Down Menüs (Formularsteuerelemt?) die ja automatisch den Wert in Zelle A1 ändert?

Anzeige
AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 16:52:44
guentherh
Hallo Dominic
geh mit der rechten Maustaste auf dein Formularsteuerelement, und wähle "Makro zuweisen"
Beste Grüße,
Günther

AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 17:13:21
Dominic
Wahnsinn, das ich ein Makro an einem Symbol oder ähnliches zuweisen kann wusste ich ja, aber wieso bin ich nicht darauf gekommen. Es funktioniert so einwandfrei und ohne zusätzlichen VB Code oder Formel. Perfekt Danke!

AW: Makro automatisch nach wenn Bedingung starten
18.12.2012 16:56:53
Henrik
Hallo Dominic,
das Worksheet_Change Ereignis wird meines Wissens nicht ausgelöst, wenn die Änderung durch eine Formel oder ein Steuerelement stattfindet.
Schreib folgenden Code in ein Modul deiner Arbeitsmappe, klicke rechts auf dein Drop Down Steuerelement, dann weist du diesen Code zu. Sollte funktionieren. (Besser wäre Active X-Steuerelement).

Sub hu()
Dim shp As Shape
With ThisWorkbook.Worksheets(1)
For Each shp In .Shapes
If shp.Name Like "Drop*" Then
MsgBox shp.OLEFormat.Object
.Range("A1")= shp.OLEFormat.Object
End If
Next
End With
End Sub

Gruß Henrik
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige