Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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 erneut ausführen, wenn Eintrag aus Liste

Makro erneut ausführen, wenn Eintrag aus Liste
07.03.2019 11:11:21
Pierre
Hallo zusammen,
zusammenhängend zu meinem letzten Beitrag, den ich aber leider nicht mehr gefunden habe:
Ich habe eine Combobox, aus der ich die einzelnen Monate auswählen kann. Durch VBA habe ich es nun geschafft, dass er mir an die entsprechende Stelle im Blatt springt.
Jetzt meine Frage: Wähle ich März aus, springt er mir auch zum 1.3., dann ist es aber unvermeidbar, dass ich weiter nach rechts scrollen muss, sodass der 1.3. nicht mehr sichtbar ist. An diesem Punkt ist es so, dass ich gerne einfach erneut März auswählen möchte und mir dann wieder die Spalte mit dem 1.3. angezeigt wird.
Zurzeit muss ich den Umweg gehen, dass ich aus der Liste einen anderen Monat wählen muss und erst dann wieder auf März gehen kann.
Lässt sich das irgendwie umgehen bzw. so einrichten, wie ich es gerne hätte? Mit einer Schleife oder so vielleicht?
Hier ein Teil des Codes (im Prinzip ist das ja immer das selbe...):
Private Sub ComboBox2_Change()
If ComboBox2.Value = "Jan" Then
ActiveWindow.ScrollColumn = 4
ElseIf ComboBox2.Value = "Feb" Then
ActiveWindow.ScrollColumn = 35
ElseIf ComboBox2.Value = "Mär" Then
ActiveWindow.ScrollColumn = 63
(...)
End If
End Sub
Vielen Dank vorab für eure Hilfe!
Gruß Pierre

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

Betreff
Datum
Anwender
Anzeige
AW: Makro erneut ausführen, wenn Eintrag aus Liste
07.03.2019 11:58:44
Werner
Hallo Pierre,
ich vermute mal, es handelt sich um eine Userform die ShowModal = False gesetzt ist und ständig angezeigt wird?
Dann wird es wohl daran liegen, dass in deiner Combobox immer noch der Januar ausgewählt ist. Dann müsstest du am Ende deines Combobox2_Change Codes den Listindex auf - 1 setzen. Dann ist in der Combobox nichts ausgewählt und du mußt den Januar erneut auswählen, was dann wieder das Change-Event auslöst.
Außerdem würde ich da statt If - Elseif - End If eher Select Case verwenden.
Private Sub ComboBox2_Change()
Select Case Me.ComboBox2.Value
Case "Jan"
ActiveWindow.ScrollColumn = 4
Case "Feb"
ActiveWindow.ScrollColumn = 35
Case "Mär"
ActiveWindow.ScrollColumn = 63
Case Else
'nix machen
End Select
Me.ComboBox2.ListIndex = -1
End Sub
Gruß Werner
Anzeige
AW: Makro erneut ausführen, wenn Eintrag aus Liste
07.03.2019 12:31:41
Pierre
Hallo Werner,
erst mal herzlichen Dank!
Ich habe den Code jetzt mal umgebaut, es funktioniert sehr gut bis da hin.
Aber mir ist ein Problem aufgefallen, welches mir vorher gar nicht bewusst war. Dieses würde ich gerne morgen nochmal erläutern, da ich es heute leider nicht mehr schaffe.
@ Werner, wenn du Zeit hast?
08.03.2019 08:13:33
Pierre
Hallo Werner,
die Mappe findest du hier: https://www.herber.de/bbs/user/128196.xlsm
Ich versuche mal mein Problem zu schildern:
Die Zelle B3 enthält eine Dropdown-Liste, je nach Auswahl in dieser Liste erscheinen in Spalte B die ersichtlichen Zahlen durch SVerweis.
Die ComboBox ist mit B3 verknüpft, damit der Eintrag aus der ComboBox auch in B3 steht und der SVerweis klappt.
Durch deine Änderung am Code ist ja jetzt logischerweise die Zelle 'immer' leer, sodass auch die Formel auf nichts Bezug nehmen kann.
Hast du eine Idee, wie man Excel dazu bringen kann, die Auswahl aus der ComboBox an Zelle B3 weiterzugeben und diesen dann stehen zu lassen? Ist sowas überhaupt möglich?
Ich möchte ungern zusätzlich noch die in B3 hinterlegte Liste anwählen müssen.
vielleicht geht sowas ja?
Gruß Pierre
Anzeige
AW: @ Werner, wenn du Zeit hast?
08.03.2019 09:05:25
Werner
Hallo Pierre,
dann lösch die Zelle B2 aus der LinkedCell Eigenschaft deiner Combobox und schreib den jeweiligen Wert auch über den Code in die Zelle B2.
Private Sub ComboBox2_Change()
Select Case Me.ComboBox2.Value
Case "Jan"
Range("B2") = "Jan"
ActiveWindow.ScrollColumn = 4
Case "Feb"
Range("B2") = "Feb"
ActiveWindow.ScrollColumn = 35
Case "Mär"
Range("B2") = "Mär"
ActiveWindow.ScrollColumn = 63
Case "Apr"
Range("B2") = "Apr"
ActiveWindow.ScrollColumn = 94
Case "Mai"
Range("B2") = "Mai"
ActiveWindow.ScrollColumn = 124
Case "Jun"
Range("B2") = "Jun"
ActiveWindow.ScrollColumn = 155
Case "Jul"
Range("B2") = "Jul"
ActiveWindow.ScrollColumn = 185
Case "Aug"
Range("B2") = "Aub"
ActiveWindow.ScrollColumn = 216
Case "Sep"
Range("B2") = "Sep"
ActiveWindow.ScrollColumn = 247
Case "Okt"
Range("B2") = "Okt"
ActiveWindow.ScrollColumn = 277
Case "Nov"
Range("B2") = "Nov"
ActiveWindow.ScrollColumn = 308
Case "Dez"
Range("B2") = "Dez"
ActiveWindow.ScrollColumn = 338
Case Else
End Select
Me.ComboBox2.ListIndex = -1
End Sub
Gruß Werner
Anzeige
Ein Traum! Funktioniert einwandfrei!
08.03.2019 09:58:24
Pierre
Hallo Werner,
das war ja gar nicht so kompliziert, wie ich befürchtet habe. Vielen vielen Dank für deine Hilfe!
Das funktioniert perfekt.
Ich habe in der Zwischenzeit versucht, das über ActiveCell.FormulaR1C1 = "Jan" / "Feb" / usw. hinzubekommen. Weiter als dies hinter 'End Select' zu schreiben und kurz zu testen, war ich aber noch nicht gekommen.
Hat mit einem Eintrag jedenfalls auch funktioniert, das hätte ich versucht auf alle Einträge auszuweiten, wie auch immer das dann ausgesehen hätte...
Gut, so viel zu meinen Selbstexperimenten.
Nochmals vielen Dank!
Gruß Pierre
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
08.03.2019 10:18:57
Werner

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige