Excel: wenn Zelle in Tabellenblatt 1 leer, dann gleiche Zelle in Tabellenblatt 2 löschen
Hallo alle miteinander,
Dank meines Chefs ich "darf" mich an Excel versuchen. Trotz nicht vorhandener VBA - Kenntnisse klappt das teilweise auch ganz gut - google sei Dank. Zu meinem aktuellen Problem kann ich aber nix finden. Daher meine Frage:
Ich habe in einer Hilfstabelle alle unsere Produkte eingetragen in folgender Art eingetragen - siehe Bild
Ich muss es so machen, da ich in vielen weiteren Spalten entsprechende Länderpreise habe. Zudem greifen viele Datenblätter auf die Informationen aus dieser Tabelle zu und zeigen sie formatiert an.
wie Ihr hoffentlich seht, gibt es einige Produkte ohne Description1 oder 2. Ich möchte jetzt folgendes überprüfen lassen:
Wenn in der Hilfstabelle sowohl das Feld Description 1 als auch 2 leer ist, dann soll bitte in einem anderen Tabellenblatt (die Zeilen sind 1:1 zugeordnet) die Zeile mit Description 2 gelöscht werden.
Sollte das so nicht möglich sein, dann nur überprüfen, ob Description 2 leer ist und diese Zeile in einem anderen Tabellenblatt löschen
Vielen Dank im Voraus.
Dank meines Chefs ich "darf" mich an Excel versuchen. Trotz nicht vorhandener VBA - Kenntnisse klappt das teilweise auch ganz gut - google sei Dank. Zu meinem aktuellen Problem kann ich aber nix finden. Daher meine Frage:
Ich habe in einer Hilfstabelle alle unsere Produkte eingetragen in folgender Art eingetragen - siehe Bild
Ich muss es so machen, da ich in vielen weiteren Spalten entsprechende Länderpreise habe. Zudem greifen viele Datenblätter auf die Informationen aus dieser Tabelle zu und zeigen sie formatiert an.
wie Ihr hoffentlich seht, gibt es einige Produkte ohne Description1 oder 2. Ich möchte jetzt folgendes überprüfen lassen:
Wenn in der Hilfstabelle sowohl das Feld Description 1 als auch 2 leer ist, dann soll bitte in einem anderen Tabellenblatt (die Zeilen sind 1:1 zugeordnet) die Zeile mit Description 2 gelöscht werden.
Sollte das so nicht möglich sein, dann nur überprüfen, ob Description 2 leer ist und diese Zeile in einem anderen Tabellenblatt löschen
Vielen Dank im Voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 277366
Url: https://administrator.de/forum/excel-wenn-zelle-in-tabellenblatt-1-leer-dann-gleiche-zelle-in-tabellenblatt-2-loeschen-277366.html
Ausgedruckt am: 04.02.2025 um 21:02 Uhr
7 Kommentare
Neuester Kommentar
Naja, ein bißchen Hirnschmalz kann man eigentlich erwarten, vor allem wenn man sich noch nicht mal hinsetzt und zumindest erst mal selber probiert anzupassen. Aber in diesem Forum muss man ja anscheinend jedem alles vorbeten.
Mit ein paar minimalen Änderungen ist das schnell erledigt ...
Mit ein paar minimalen Änderungen ist das schnell erledigt ...
Sub delEmptyRows()
Dim rngCells As Range, cell As Range, rngCombined As Range, sheet as Worksheet, sheet2 as Worksheet
' Hier das gewünschte Tabellenblatt angeben
set sheet = Worksheets(1)
set sheet2 = Worksheets(2)
Set rngCells = sheet.Range("A1", sheet.Range("A65535").End(xlUp))
For Each cell In rngCells
If cell.Value = "Description2" and cell.Offset(0,1).Value = "" Then
If rngCombined Is Nothing Then
Set rngCombined = sheet2.Cells(cell.Row,1).EntireRow
End If
Set rngCombined = Union(rngCombined, sheet2.Cells(cell.Row,1).EntireRow)
End If
Next
If Not rngCombined Is Nothing Then
rngCombined.Delete
End If
End Sub
Hallo Daniel,
dein Problem ist das du den kombinierten Bereich der gelöscht werden soll nicht nach jedem Durchlauf zurücksetzt (auf Nothing setzen), denn ein Bereich kann sich nicht über mehrere Arbeitsbätter erstrecken, deswegen der Fehler.
dein Problem ist das du den kombinierten Bereich der gelöscht werden soll nicht nach jedem Durchlauf zurücksetzt (auf Nothing setzen), denn ein Bereich kann sich nicht über mehrere Arbeitsbätter erstrecken, deswegen der Fehler.
Sub delEmptyRows()
Dim rngCells As Range, cell As Range, rngCombined As Range, sheet as Worksheet, sheet2 as Worksheet, i As Integer
set sheet = Worksheets(1)
For i = 2 To 3
set rngCombined = Nothing
set sheet2 = Worksheets(i)
Set rngCells = sheet.Range("A1", sheet.Range("A65535").End(xlUp))
For Each cell In rngCells
If cell.Value = "Description2" and cell.Offset(0,1).Value = "" Then
If rngCombined Is Nothing Then
Set rngCombined = sheet2.Cells(cell.Row,1).EntireRow
End If
Set rngCombined = Union(rngCombined, sheet2.Cells(cell.Row,1).EntireRow)
End If
Next
If Not rngCombined Is Nothing Then
rngCombined.Delete
End If
Next
End Sub