Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.05.2024 14:51:38
07.05.2024 13:27:17
Anzeige
Archiv - Navigation
1896to1900
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

Code zusammenführen

Code zusammenführen
28.08.2022 21:18:12
Lion
Hallo,
ich müsste 2 Codes zusammenführen auf einer Tabelle.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim loeschen As Double
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 2).Value = "NO" Or Cells(loeschen, 16).Value = "exists" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 7 Or .Column = 17 Then
If .CountLarge = 1 Then
If LCase(Cells(.Row, 7)) = "installed software" And LCase(Cells(.Row, 17)) = "no" Then
Tabelle7.Cells(Tabelle7.Rows.Count, 1).End(xlUp).Offset(1, 0) = Cells(.Row, 1)
End If
End If
End If
End With
End Sub
Wie mache ich dies am besten? So bekomme ich immer "Fehler beim Kompilieren: Mehrdeutiger Name: Worksheet_Change"
Vielen Dank im voraus.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Vor einem Zusammenführen...
28.08.2022 21:24:42
{Boris}
Hi,
...gestatte die Frage:
Willst Du wirklich, dass der erste Code bei jeder Zelländerung feuert?
VG, Boris
AW: Vor einem Zusammenführen...
28.08.2022 21:43:53
Lion
Hallo Boris,
der erste Code löscht die Zeile ja nur wenn, folgende bedingungen erfüllt werden. Bei mir wird nur die Zeile gelöscht wenn, zB. in reihe 2 "NO" per drop down ausgewählt wird.
VG
Du hast das Prinzip....
28.08.2022 21:47:23
{Boris}
Hi,
...der Ereigniscodes noch nicht verstanden. Dein erster Code wird bei jeder Zelländerung abgearbeitet - ich kann mir nicht vorstellen, dass das gewollt ist...?!
VG, Boris
AW: Code zusammenführen
28.08.2022 21:50:14
onur
1) Es kann nur EINE "Sub Worksheet_Change" pro Arbeitsblatt geben und zwar nur die, die dir der Editor zur Verfügung stellt (also nicht selber schreiben).
2) Das erste Makro ruft sich wieder selbst auf, sobald die Zeile gelöscht wird, da das ja eine Änderung ist - daher vielleicht auch der Name der Sub.
3) Wozu "Dim loeschen As Double" ? Es gibt keine Zeilennummer 17,4578156.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim loeschen As Long, sp, ze
sp = Target.coluimn: ze = Target.Row
If sp = 2 Or sp = 16 Then
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 2).Value = "NO" Or Cells(loeschen, 16).Value = "exists" Then
Rows(loeschen).Delete
End If
Next loeschen
End If
If sp = 7 Or sp = 17 Then
If Target.CountLarge = 1 Then
If LCase(Cells(ze, 7)) = "installed software" And LCase(Cells(ze, 17)) = "no" Then
Tabelle7.Cells(Tabelle7.Rows.Count, 1).End(xlUp).Offset(1, 0) = Cells(ze, 1)
End If
End If
End If
End Sub

Anzeige
AW: Code zusammenführen
28.08.2022 21:57:59
onur
Sorry - Punkt 2 vergessen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim loeschen As Long, sp, ze
sp = Target.coluimn: ze = Target.Row
Application.EnableEvents = False
If sp = 2 Or sp = 16 Then
For loeschen = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 2).Value = "NO" Or Cells(loeschen, 16).Value = "exists" Then
Rows(loeschen).Delete
End If
Next loeschen
End If
Application.EnableEvents = True
If sp = 7 Or sp = 17 Then
If Target.CountLarge = 1 Then
If LCase(Cells(ze, 7)) = "installed software" And LCase(Cells(ze, 17)) = "no" Then
Tabelle7.Cells(Tabelle7.Rows.Count, 1).End(xlUp).Offset(1, 0) = Cells(ze, 1)
End If
End If
End If
End Sub

Anzeige
AW: Code zusammenführen
29.08.2022 12:27:26
Lion
Hallo Onur,
vielen dank. Das funktioniert super.
VG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige