Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrere VBA-Codes in Tabelle (Fehler)

Forumthread: Mehrere VBA-Codes in Tabelle (Fehler)

Mehrere VBA-Codes in Tabelle (Fehler)
EarnyToLearny
Liebe Excel-Gemeinde,
ich verwende in einer Tabelle 2 VBA-Codes, die jeweils allein genutzt voll funktionsfähig sind. Sobald ich aber beide verwende, funktioniert der Code für den "Bildertausch" nicht mehr.
Habe den Code einmal an den Anfang gestellt, dazwischen und am Ende. Nix geht. Was mache ich falsch?
(der Code für den Bildertausch wurde zusätzlich eingefügt)
Gruß Werner
  • Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Me.Shapes("Bild 58").Visible = Range("Q19") = 1
    Me.Shapes("Bild 59").Visible = Range("Q19") = 2
    Me.Shapes("Bild 60").Visible = Range("Q19") = 3
    End Sub
    
    
    Private Sub OptionButton1_Click()
    Dim lngIndex As Long
    For lngIndex = 4 To 15
    Select Case lngIndex
    Case 10 To 15
    Me.OLEObjects("OptionButton" & lngIndex).Visible = False
    Case Else
    Me.OLEObjects("OptionButton" & lngIndex).Visible = True
    End Select
    Next
    End Sub
    
    
    Private Sub OptionButton2_Click()
    Dim lngIndex As Long
    For lngIndex = 4 To 15
    Select Case lngIndex
    Case 4, 5, 6, 7, 8, 9, 14 To 15
    Me.OLEObjects("OptionButton" & lngIndex).Visible = False
    Case Else
    Me.OLEObjects("OptionButton" & lngIndex).Visible = True
    End Select
    Next
    End Sub
    
    
    Private Sub OptionButton3_Click()
    Dim lngIndex As Long
    For lngIndex = 4 To 15
    Select Case lngIndex
    Case 4 To 13
    Me.OLEObjects("OptionButton" & lngIndex).Visible = False
    Case Else
    Me.OLEObjects("OptionButton" & lngIndex).Visible = True
    End Select
    Next
    End Sub
    

  • Anzeige

    1
    Beitrag zum Forumthread
    Beitrag zu diesem Forumthread

    Betreff
    Benutzer
    Anzeige
    ERledigt, neue Anfrage läuft o.w.T
    24.10.2011 19:45:06
    Reinhard
    
    

    Anzeige
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    Mehrere VBA-Codes in Excel nutzen: Fehlerbehebung und Tipps


    Schritt-für-Schritt-Anleitung

    1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
    2. Tabelle auswählen: Wähle die entsprechende Tabelle im Projektfenster aus.
    3. Code einfügen: Füge deinen ersten VBA-Code in das Codefenster ein.
    4. Zweiten Code einfügen: Füge den zweiten VBA-Code direkt unter dem ersten Code ein.
    5. Kollisionen vermeiden: Stelle sicher, dass die beiden Codes keine Variablen oder Objekte verwenden, die sich gegenseitig beeinflussen.
    6. Fehler prüfen: Gehe zu Debug > Kompilieren, um sicherzustellen, dass keine Fehler im Code vorhanden sind.
    7. Excel schließen und neu starten: Manchmal hilft ein Neustart von Excel, um Probleme zu beheben.

    Häufige Fehler und Lösungen

    • Fehler: Bildertausch funktioniert nicht:

      • Lösung: Überprüfe, ob die Formeln oder Bedingungen in den If-Anweisungen korrekt sind. Achte darauf, dass die Bildnamen im Code genau mit den Namen in Excel übereinstimmen.
    • Fehler: Sichtbarkeit der OptionButtons:

      • Lösung: Stelle sicher, dass die Sichtbarkeit der OptionButtons nicht durch andere Codes beeinflusst wird. Teste jeden Code einzeln, um den Konflikt zu identifizieren.

    Alternative Methoden

    • Verwendung von Modulen: Anstatt mehrere Codes in einer Tabelle zu nutzen, kannst du die VBA-Codes in Module auslagern. Dies verbessert die Übersichtlichkeit und vermeidet Namenskonflikte.

    • Benutzerdefinierte Funktionen: Überlege, ob du einige der Logiken in benutzerdefinierte Funktionen umwandeln kannst. So kannst du die Excel Codes einfacher wiederverwenden.


    Praktische Beispiele

    Hier sind einige praktische Beispiele für die Nutzung von VBA Codes in Excel:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("Q19")) Is Nothing Then
            Select Case Me.Range("Q19").Value
                Case 1
                    Me.Shapes("Bild 58").Visible = True
                    Me.Shapes("Bild 59").Visible = False
                    Me.Shapes("Bild 60").Visible = False
                Case 2
                    Me.Shapes("Bild 58").Visible = False
                    Me.Shapes("Bild 59").Visible = True
                    Me.Shapes("Bild 60").Visible = False
                Case 3
                    Me.Shapes("Bild 58").Visible = False
                    Me.Shapes("Bild 59").Visible = False
                    Me.Shapes("Bild 60").Visible = True
            End Select
        End If
    End Sub

    In diesem Beispiel wird der Bildertausch basierend auf dem Wert in Zelle Q19 gesteuert.


    Tipps für Profis

    • Dokumentation: Kommentiere deinen Code gründlich, um die Wartung zu erleichtern.
    • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Probleme zu identifizieren und zu lösen.
    • Testen: Teste jeden Codeabschnitt einzeln, bevor du sie kombinierst, um Konflikte zu vermeiden.

    FAQ: Häufige Fragen

    1. Warum funktioniert mein VBA-Code nicht, wenn ich mehrere Codes kombiniere?
    Es kann sein, dass die Codes sich gegenseitig beeinflussen oder dass Namenskonflikte bei Variablen auftreten. Teste jeden Code einzeln, um die Ursache zu finden.

    2. Wie kann ich die Sichtbarkeit von Bildern in Excel steuern?
    Du kannst dies mit der Visible-Eigenschaft der Shapes-Objekte in VBA steuern. Stelle sicher, dass die Bildnamen im Code übereinstimmen.

    3. Gibt es eine Möglichkeit, die Leistung meiner VBA-Codes zu optimieren?
    Ja, vermeide unnötige Berechnungen und reduziere die Anzahl der Bildschirmaktualisierungen während der Ausführung des Codes, indem du Application.ScreenUpdating = False am Anfang und Application.ScreenUpdating = True am Ende deines Codes hinzufügst.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige