Hallo Zusammen,
ich habe folgendes Problem: Ich muss meine Comboboxen mit .AddItem befüllen, weil meine Makros wie z. B. Autofilter sonst nicht funktionieren. Über diese Variante werden die Comboboxen aber geleert, wenn ich die Datei schließe. Beim wiederöffnen sind die Comboboxen also leer. Ich habe ein funktionierendes Makro geschrieben, welches alle Comboboxen befüllt. Es funktioniert an sich , wenn ich aber dieses Makro beim öffnen der Arbeitsmappe automatisch starten möchte kommen immer Fehlermeldungen. Habe versucht mit Call das Makro bei Workbook_open oder Workbook_activate einzubauen, aber vergebens. Da tauchen dann verschiedene Fehlermeldungen auf wie Laufzeitfehler 438 oder Laufzeitfehler 70. Im folgenden die Makros:
Vielen Dank für eure Hilfe!
ich habe folgendes Problem: Ich muss meine Comboboxen mit .AddItem befüllen, weil meine Makros wie z. B. Autofilter sonst nicht funktionieren. Über diese Variante werden die Comboboxen aber geleert, wenn ich die Datei schließe. Beim wiederöffnen sind die Comboboxen also leer. Ich habe ein funktionierendes Makro geschrieben, welches alle Comboboxen befüllt. Es funktioniert an sich , wenn ich aber dieses Makro beim öffnen der Arbeitsmappe automatisch starten möchte kommen immer Fehlermeldungen. Habe versucht mit Call das Makro bei Workbook_open oder Workbook_activate einzubauen, aber vergebens. Da tauchen dann verschiedene Fehlermeldungen auf wie Laufzeitfehler 438 oder Laufzeitfehler 70. Im folgenden die Makros:
Code:
Sub Comboboxen_befüllen()
Call Jahre_variablen_definieren
If Not ActiveWorkbook.FullName = ThisWorkbook.FullName Then Exit Sub
With Sheets("Musterzelle").ComboBox1
.AddItem "Alle"
.AddItem "Gesamt"
.AddItem Jahr1
If Frz_Jahre > 1 Then
.AddItem Jahr2
End If
If Frz_Jahre > 2 Then
.AddItem Jahr3
End If
If Frz_Jahre > 3 Then
.AddItem Jahr4
End If
If Frz_Jahre > 4 Then
.AddItem Jahr5
End If
End With
With Worksheets(kg_TabelleErgebnisName).ComboBox1
.AddItem "Alle"
.AddItem "Gesamt"
.AddItem Jahr1
If Frz_Jahre > 1 Then
.AddItem Jahr2
End If
If Frz_Jahre > 2 Then
.AddItem Jahr3
End If
If Frz_Jahre > 3 Then
.AddItem Jahr4
End If
If Frz_Jahre > 4 Then
.AddItem Jahr5
End If
End With
For Each p_WorkSheet_ws In Worksheets
If p_WorkSheet_ws.Cells(1, 1).Value = "Stationsblatt" Then
With p_WorkSheet_ws.ComboBox1
.AddItem "Alle"
.AddItem "Gesamt"
.AddItem Jahr1
If Frz_Jahre > 1 Then
.AddItem Jahr2
End If
If Frz_Jahre > 2 Then
.AddItem Jahr3
End If
If Frz_Jahre > 3 Then
.AddItem Jahr4
End If
If Frz_Jahre > 4 Then
.AddItem Jahr5
End If
End With
End If
Next p_WorkSheet_ws
End Sub
Code:
Private Sub Workbook_Open()
'Bildschirmupdate verhindern
Application.ScreenUpdating = False
Blattschutz_aufheben kg_TabelleProjektDaten
Blattschutz_aufheben kg_TabelleCTGName
Blattschutz_aufheben kg_TabelleErgebnisName
Blattschutz_aufheben kg_TabelleMaeAnteil
Blattschutz_aufheben kg_TabelleMusterzelle
'Variablen deklarieren
Dim p_WS_ws As Worksheet
Dim p_WB_wb As Workbook
Dim p_WorkSheet_ws As Worksheet
' --- Gruppierung aufklappen ermöglichen ---
For Each p_WS_ws In Worksheets
If Not p_WS_ws.ProtectContents Then
Blatt_schützen p_WS_ws.Name
End If
Next p_WS_ws
' --- hinzugefügt am 10.02.2011 ---
' --- Arbeitsblatt "Musterzelle" verstecken
Worksheets(kg_TabelleMusterzelle).Visible = False
' ---------------------------------
'Range in der Ergebnisübersicht CTG setzen, in der keine Plausibilitätsprüfung erfolgen soll
Worksheets(kg_TabelleMaeAnteil).Select
Set g_NoCheck_rng = Range(Cells(kg_ZeilenNrMaeKopf + 2, kg_SpaltenNrInventarnr), Cells(kg_ZeilenNrMaeKopf + zähle_Zeilen(kg_SpaltenNrZelle, kg_ZeilenNrMaeKopf, ActiveWorkbook.Worksheets(kg_TabelleMaeAnteil)) - 1, kg_SpaltenNrInventarnr))
'Call Blattschutz_aus
'Call Jahre_variablen_definieren
'Call Jahre_Dropdown
'Call Comboboxen_leeren
Call Comboboxen_befüllen
'Call Jahre_Dropdown_Station_definieren
'Call Comboboxwert_Alle
'Call Blattschutz_ein
'Anfangssheet auswählen
Worksheets(kg_TabelleProjektDaten).Select
Range("F6").Select
'Bildschirmupdate ermöglichen
Application.ScreenUpdating = True
End Sub
Code:
Private Sub Workbook_Activate()
'--- Tastenkombination
' "MAE-Wert verlinken"
Application.OnKey "^+v", "MAE_Uebernehmen"
' "Einfügen" wird "Werte einfügen"
Application.OnKey "^v", "Werte_einfuegen"
' geheime Tastenkombination "Einfügen
Application.OnKey "^+q", "einfuegen"
'--- Symbolleisten /Menüs anpassen
Schaltflaechen_anpassen
'Deaktivieren des Befehls "Ausschneiden" (bei allen Arbeitsmappen)
CutOff
Call Comboboxen_befüllen
End Sub
Vielen Dank für eure Hilfe!