22.05.2018, 14:03
Hallo Zusammen
Ich habe ein VBA Projekt welches, so wie ich es geschrieben habe, sehr gut läuft. Jedoch habe ich das Problem, dass ich bei Änderungen immer sehr viel Code anpassen muss. Daher würde ich den Code gerne in ein Modul packen, welchen ich dann einfach mittels call ansprechen kann.
Damit ich dies tun kann, müsste ich jedoch meinen Code vereinfachen und da stellt es bei mir an.
Ausgangslage:
Ich habe eine UserForm mit 12 Commandbutton`s. Jeder Button spricht ein Tabellenblatt an macht dies sichtbar und blendet alle anderen Blätter aus. Zusätzlich wird die UserForm ausgeblendet. Mein Code für ein CommandButton sieht so aus:
Private Sub CommandButton9_Click()
Sheets("Begriffserklärung").Visible = True
Sheets("Begriffserklärung").Select
Markenauswahl.Hide
If Sheets("VW NF").Activate Then Sheets("VW NF").Visible = False
If Sheets("NSSP").Activate Then Sheets("NSSP").Visible = False
If Sheets("VW").Activate Then Sheets("VW").Visible = False
If Sheets("Seat").Activate Then Sheets("Seat").Visible = False
If Sheets("Skoda").Activate Then Sheets("Skoda").Visible = False
If Sheets("Servicepakete").Activate Then Sheets("Servicepakete").Visible = False
If Sheets("Audi").Activate Then Sheets("Audi").Visible = False
If Sheets("ASSP").Activate Then Sheets("ASSP").Visible = False
If Sheets("Checkliste").Activate Then Sheets("Checkliste").Visible = False
If Sheets("Infos für Sachbearbeiter").Activate Then Sheets("Infos für Sachbearbeiter").Visible = False
If Sheets("EW").Activate Then Sheets("EW").Visible = False
End Sub
Mein Problem:
Kommt nun ein neues Blatt dazu, muss ich bei jedem CommandButton den If Befehl hinein kopieren.
Meine Idee:
Call Ausblenden (Modul welchen den obenstehenden Code beinhaltet, für jedes Tabellenblatt)
Sheets("Begriffserklärung").Visible = True
Sheets("Begriffserklärung").Select
Markenauswahl.Hide
Hier ist jedoch das Problem, dass es einen Debugg Fehler gibt, da Excel mindestens ein aktives Blatt braucht.
Hat vielleicht hier jemand eine elegante Lösung?
Besten Dank für die Hilfe
LG
Demech
Ich habe ein VBA Projekt welches, so wie ich es geschrieben habe, sehr gut läuft. Jedoch habe ich das Problem, dass ich bei Änderungen immer sehr viel Code anpassen muss. Daher würde ich den Code gerne in ein Modul packen, welchen ich dann einfach mittels call ansprechen kann.
Damit ich dies tun kann, müsste ich jedoch meinen Code vereinfachen und da stellt es bei mir an.
Ausgangslage:
Ich habe eine UserForm mit 12 Commandbutton`s. Jeder Button spricht ein Tabellenblatt an macht dies sichtbar und blendet alle anderen Blätter aus. Zusätzlich wird die UserForm ausgeblendet. Mein Code für ein CommandButton sieht so aus:
Private Sub CommandButton9_Click()
Sheets("Begriffserklärung").Visible = True
Sheets("Begriffserklärung").Select
Markenauswahl.Hide
If Sheets("VW NF").Activate Then Sheets("VW NF").Visible = False
If Sheets("NSSP").Activate Then Sheets("NSSP").Visible = False
If Sheets("VW").Activate Then Sheets("VW").Visible = False
If Sheets("Seat").Activate Then Sheets("Seat").Visible = False
If Sheets("Skoda").Activate Then Sheets("Skoda").Visible = False
If Sheets("Servicepakete").Activate Then Sheets("Servicepakete").Visible = False
If Sheets("Audi").Activate Then Sheets("Audi").Visible = False
If Sheets("ASSP").Activate Then Sheets("ASSP").Visible = False
If Sheets("Checkliste").Activate Then Sheets("Checkliste").Visible = False
If Sheets("Infos für Sachbearbeiter").Activate Then Sheets("Infos für Sachbearbeiter").Visible = False
If Sheets("EW").Activate Then Sheets("EW").Visible = False
End Sub
Mein Problem:
Kommt nun ein neues Blatt dazu, muss ich bei jedem CommandButton den If Befehl hinein kopieren.
Meine Idee:
Call Ausblenden (Modul welchen den obenstehenden Code beinhaltet, für jedes Tabellenblatt)
Sheets("Begriffserklärung").Visible = True
Sheets("Begriffserklärung").Select
Markenauswahl.Hide
Hier ist jedoch das Problem, dass es einen Debugg Fehler gibt, da Excel mindestens ein aktives Blatt braucht.
Hat vielleicht hier jemand eine elegante Lösung?
Besten Dank für die Hilfe
LG
Demech