Anzeige
Archiv - Navigation
916to920
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
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neues Problem mit ComboBox

Neues Problem mit ComboBox
26.10.2007 08:42:00
Melanie
Hallo Forum,
ich habe in einer Datei eine ComboBox, die ich über einen VB Code direkt im Tabellenblatt wie folgt steuere:

Private Sub Worksheet_Activate()
With ComboBox1
.Clear
.AddItem "alle Zeilen angezeigt"
.AddItem "leere Zeilen ausgeblendet"
.ListIndex = 0
End With
End Sub



Private Sub ComboBox1_Click()
Dim varWert As Variant
varWert = Me.ComboBox1.Value
Range("G3") = varWert
Select Case varWert
Case "leere Zeilen ausgeblendet"
Selection.AutoFilter Field:=2, Criteria1:="0", Operator:=xlAnd
Case "alle Zeilen angezeigt"
Selection.AutoFilter Field:=2
End Select
End Sub


Ich kann den Code nicht in “Diese Arbeitsmappe” legen, weil das Tabellenblatt per Makro in eine neue Arbeitsmappe kopiert und unter einem anderen Namen abgespeichert wird.
Jetzt ist nur das Problem, dass die neue Datei nur ein Tabellenblatt enthält und daher das Tabellenblatt beim Öffnen der Datei nicht aktiviert wird. D.h. Wenn ich die neue Datei öffne, sind die Auswahlmöglichkeiten in der ComboBox nicht enthalten. Weiß jemand Abhilfe?
Die Dateien werden firmenintern verschickt, deswegen wäre es toll, wenn es einfach da wäre, wenn die Datei geöffnet wird und nicht erst das Makro angestoßen werden muss.
Danke im Voraus!
Grüße, Melanie

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neues Problem mit ComboBox
26.10.2007 09:02:44
Luschi
Hallo Melanie,
schreibe den Vba-Code zum Initialisieren der ComboBox so:

Dim ok As Boolean
Private Sub ComboBox1_Click()
Dim varWert As Variant
varWert = Me.ComboBox1.Value
Range("G3") = varWert
Select Case varWert
Case "leere Zeilen ausgeblendet"
Selection.AutoFilter Field:=2, Criteria1:="0", Operator:=xlAnd
Case "alle Zeilen angezeigt"
Selection.AutoFilter Field:=2
End Select
End Sub
Private Sub ComboBox1_GotFocus()
If Not ok Then
Application.EnableEvents = False
With ComboBox1
.Clear
.AddItem "alle Zeilen angezeigt"
.AddItem "leere Zeilen ausgeblendet"
.ListIndex = 0
End With
Application.EnableEvents = True
ok = True
MsgBox ok
End If
End Sub

Jetzt wird die Initialisierung vorgenommen, wenn die ComboBox den Focus erhält - also der User auf das Steuerelement klickt. Die Variable 'ok' steuert, daß dies nur beim 1. Mal passiert.
Da sich der Vba-Code jetzt nur im Tabellenblatt befindet, wird er beim Kopieren in eine neue Arbeitsmappe auch mitgenommen.
Die Application.EnableEvents - Anweisung sorgt dafür, daß beim Initialisieren nicht das Change-Ereignis der Combobox ausgeführt wird.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Neues Problem mit ComboBox
26.10.2007 09:21:17
Luschi
Hallo Melanie,
schmeiß die MsgBox-Zeile raus, die war nur zum Testen da!
Gruß von Luschi
aus klein-Paris

AW: Neues Problem mit ComboBox
26.10.2007 09:22:00
Melanie
Schon gemacht :o)

AW: Neues Problem mit ComboBox
26.10.2007 09:22:00
Melanie
Funktioniert. Dankeschön!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige