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

Forumthread: VBA Fehler beim ausführen

VBA Fehler beim ausführen
15.08.2024 13:32:43
Roger
Hallo zusammen

Habe leider wieder ein Problem und ich stehe zur Zeit noch am Anfang von VBA.

In dem unten aufgeführten Code gibt es leider einen Fehler am Schluss bei Me.Range("E51:E56").ClearContents
Wenn in der Zelle E50 Sonderkonfiguration steht oder das Feld leer ist, die Felder E50-E56 geleert werden.

Dann noch eine Frage
Wäre es noch zusätzlich möglich, wenn in der Zelle H50 Sonderkonfiguration oder configuration spéciale steht, dass in die Zelle E50 den Wert aus H50 übernimmt und sonst nichts in die Zelle schreibt.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$25" Then
Cells.EntireRow.Hidden = False
Select Case Target.Value
Case "Novatronic XV 80/80", "Novatronic XV 80/70", "Novatronic XV 80/60", "Novatronic XV 80/50", "Novatronic XV 80/49"
Rows("55").EntireRow.Hidden = True
Case "Novatronic XV 35/30", "Novatronic XV 35/35", "Novatronic XV 35/40", "Novatronic XV 35/49", "Novatronic XV 35/50", "Novatronic XV 55/30", "Novatronic XV 55/35", "Novatronic XV 55/40", "Novatronic XV 55/45", "Novatronic XV 55/49", "Novatronic XV 55/55"
Rows("56").EntireRow.Hidden = True
End Select
End If

If Target.Address = "$E$52" Or Target.Address = "$F$11" Then
Range("E54:F54").ClearContents
End If

If Target.Address(0, 0) = "E50" Then
If Target.Value = "standard rechts" Or Target.Value = "standard links" Then
Me.Range("E51:E56").Value = Me.Range("H51:H56").Value
Else
Me.Range("E51:E56").ClearContents
End If
End If

End Sub

LG
Roger


Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler beim ausführen
15.08.2024 13:51:18
Onur
Was soll denn das "Me" im Code ?
AW: VBA Fehler beim ausführen
15.08.2024 14:00:00
ralf_b
hinweis: wenn man im Worksheet_change Zelleninhalte ändert, dann wir ein neues Event ausgelöst ohne das das vorherige beendet werden kann. Dann kann der Code in einen Stapelfehler laufen. Deshalb sollte man Application.enableevents = false vor den Part mit der Änderung und Application.enableevents = true danach verwenden.

Anzeige
AW: VBA Fehler beim ausführen
15.08.2024 15:13:07
GerdL
Hallo Roger!

Private Sub Worksheet_Change(ByVal Target As Range)


Select Case Target.Address(0, 0)
Case "E50"
Application.EnableEvents = False
If Target.Value = "standard rechts" Or Target.Value = "standard links" Then
Range("E51:E56").Value = Range("H51:H56").Value
ElseIf Target.Value = "Sonderkonfiguration" Or Target.Value = "configuration spéciale" Then
Target.Value = Range("H50").Value
'ggf noch dazu:
'Range("E51:H56").ClearContents
Else
Range("E51:H56").ClearContents
End If
Application.EnableEvents = True
Case "E52", "F11"
Application.EnableEvents = False
Range("E54:F54").ClearContents
Application.EnableEvents = True
Case "E25"
Cells.EntireRow.Hidden = False
Select Case Left(Target.Value, 14)
Case "Novatronic XV "
Select Case Right(Target.Value, 5)
Case "80/80", "80/70", "80/60", "80/50", "80/49"
Rows(55).Hidden = True
Case "35/30", "35/35", "35/40", "35/49", "35/50", _
"55/30", "55/35", "55/40", "55/45", "55/49", "55/55"
Rows(56).Hidden = True
End Select
End Select
End Select

End Sub





Gruß Gerd
Anzeige
AW: VBA Fehler beim ausf�hren
19.08.2024 13:19:29
Roger
Hallo Gerd

Vielen Dank herzlichen Dank für Deine Hilfe, habe daran noch kleine Änderungen vorgenommen.
Jetzt habe ich noch ein Problem, ich möchte, dass wenn E50 leer oder Sonderkonfiguartion steht, neu die Zellen E51 bis E60 geleert werden, also nichts mehr drin steht.

Private Sub Worksheet_Change(ByVal Target As Range)

Select Case Target.Address(0, 0)
Case "E50"
Application.EnableEvents = False
If Target.Value = "standard rechts" Or Target.Value = "standard droite" Or Target.Value = "standard destra" Or Target.Value = "standard right" Or Target.Value = "standard links" Or Target.Value = "standard gauche" Or Target.Value = "standard a sinistra" Or Target.Value = "standard left" Then
Range("E51:E56").Value = Range("H51:H56").Value
ElseIf Target.Value = "Sonderkonfiguration" Or Target.Value = "configuration spéciale" Or Target.Value = "Configurazione speciale" Or Target.Value = "Special configuration" Or Target.Value = "" Then
Target.Value = Range("E50").Value
Else
Range("E51:E56").clear
End If

Application.EnableEvents = True
If Target.Address = "$E$52" Or Target.Address = "$F$11" Then
Range("E54:F54").ClearContents
End If

Case "E25"
Cells.EntireRow.Hidden = False
Select Case Left(Target.Value, 14)
Case "Novatronic XV "
Select Case Right(Target.Value, 5)
Case "80/80", "80/70", "80/60", "80/50", "80/49"
Rows(55).Hidden = True
Case "35/30", "35/35", "35/40", "35/49", "35/50", _
"55/30", "55/35", "55/40", "55/45", "55/49", "55/55"
Rows(56).Hidden = True
End Select
End Select
End Select

End Sub
Anzeige
AW: VBA Fehler beim ausführen
15.08.2024 14:18:22
Onur
Besser ist es, die Events nur abzuschalten, wenn es NÖTIG ist, was in diesem Falle NICHT zutrifft, was du überprüfen kannst, indem du dir den Code auch mal anschaust.
AW: VBA Fehler beim ausführen
15.08.2024 14:51:05
ralf_b
gääähn......
AW: VBA Fehler beim ausführen
15.08.2024 14:59:00
Onur
Deine Events sind offenbar auch abgeschaltet...
Anzeige
AW: VBA Fehler beim ausführen
15.08.2024 15:03:34
ralf_b
stimmt, eine Spontanreaktion auf deine Oberlehrerart.
AW: VBA Fehler beim ausführen
15.08.2024 15:08:35
Onur
Sollte nicht so wirken.
Das Problem ist nur, dass Anfänger solche Ratschläge ungeprüft übernehmen und bei JEDEM Code die Events, die Bildschirmaktualisierung, die Berechnungen und Fehlerausgabe abschalten, weil sie glauben, das würde den Code beschleunigen bzw eigene Programmier-Fehler korrigieren.
Anzeige

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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