Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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

Worksheet_Change startet ungewollt Makro

Worksheet_Change startet ungewollt Makro
14.09.2016 14:57:39
Lucienne
Hallo zusammen,
wie so viele andere habe auch ich leider nur bescheidene VBA Kentnisse, daher schonmal vielen Dank für eure Hilfe.
Derzeit kämpfe ich mit folgendem Problem:
Ich habe ein Excel File in dem je nachdem welche Information in bestimmten Zellen eingetragen wird, ein bestimmtes Makro ausgeführt wird. Die Makros sind immer dafür da weitere Zeilen aus- oder einzublenden. Bis dahin funktioniert alles super.
Das Problem entsteht, wenn ich zwei zusammenhängende Zellen markieren und auf die Taste Entfernen drücke oder mit Strg+V Daten einfüge. Denn dann startet er auch ein Makro was er aber nicht soll. Da die Zellen nicht vom VBA Code betroffen sind (im Beispiel Zelle D13+D14)
So sieht mein Code derzeit aus (ist verkürzt, da mehr Zellen betroffen sind, der Code _ wiederholt sich jedoch nur):

Private Sub Worksheet_Change(ByVal target As Range)
On Error Resume Next
'Unterscheidung Liquid_Solid_Gas
If target.Address = "$D$12" And target.Value = "solid" Then
Call D12_solid
End If
If target.Address = "$D$12" And target.Value = "liquid" Then
Call D12_liquid
End If
If target.Address = "$D$12" And target.Value = "gas" Then
Call D12_gas
End If
If target.Address = "$D$12" And target.Value = "please select" Then
Call D12_please_select
End If
'Einblenden bei yes
If target.Address = "$D$31" And target.Value = "yes" Then
Call Solids_D31
End If
If target.Address = "$D$33" And target.Value = "yes" Then
Call Solids_D33
End If
'Ausblenden bei no
If target.Address = "$D$31" And target.Value = "no" Then
Call Solids_D31_ausblenden
End If
If target.Address = "$D$33" And target.Value = "no" Then
Call Solids_D33_ausblenden
End If
'Ausblenden bei please select
If target.Address = "$D$31" And target.Value = "please select" Then
Call Solids_D31_ausblenden
End If
If target.Address = "$D$33" And target.Value = "please select" Then
Call Solids_D33_ausblenden
End If
End Sub

Excel startet im beschriebenen Szenario immer das Makro D12_please_select (4. If Befehl).
Vielen Dank für eure Hilfe
Lucienne

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change startet ungewollt Makro
14.09.2016 15:35:06
Luschi
Hallo Lucienne,
so sollte es klappen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("D12,D31,D33"), Target) Is Nothing Then
'wenn die Zellen D12, D31, D33, nicht Teil von Target sind
Exit Sub
End If
'hier geht Dein Code weiter
End Sub
Gruß von Luschi
aus klerin-Paris
OT@Luschi: Gesehen?
14.09.2016 19:34:03
Luc:-?
Forumslink
Gruß, Luc :-?
AW: Worksheet_Change startet ungewollt Makro
14.09.2016 15:41:49
UweD
Hallo
hab mal einiges umgestrickt...
Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Fehler
    If Target.Column <> 4 Then Exit Sub 'nicht in D 
    
    If Target.Count > 1 Then
        MsgBox "nur einzeln ändern!"
        With Application
            .EnableEvents = False
            .Undo
            .EnableEvents = True
        End With
    End If
    
    If Target.Row = 12 Then
        Select Case Target
            Case "solid", "liquid", "gas", "please select"
                Application.Run "D12_" & Target
        End Select
     
     ElseIf Target.Row = 31 Or Target.Row = 33 Then
        Select Case Target
            Case "yes" 'Einblenden bei yes 
                Application.Run "Solids_D" & Target.Row
                
            Case "no", "please select" 'Ausblenden bei no oder please select 
                Application.Run "Solids_D" & Target.Row & "_ausblenden"
        End Select
        
    End If
    
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


die aufgerufenen Makros müssen in einem Modul stehen
Gruß UweD
Anzeige
AW: Worksheet_Change startet ungewollt Makro
15.09.2016 11:01:09
Lucienne
Hi Uwe,
SUPER. Vielen Dank, funktioniert perfekt und die Lösung mit der Message Box passt.
Danke für die Hilfe, ich habe wieder einiges gelernt und konnte den kompletten Code von 3 auf 1 Seite reduzieren :-)
Schönen Tag noch
Lucienne
Prima! Danke für die Rückmeldung.
15.09.2016 11:21:47
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige