Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wenn inhalt in andere Tab. vorhanden, dann zeile l

wenn inhalt in andere Tab. vorhanden, dann zeile l
29.05.2007 13:32:00
Abdullah

Hallo zusammen,
ich habe ein Tabellenblatt wo ich in Splalte A ab zeile 2 verschiedene nummern eintrage. Und in der Tabelle2 werden diese nummer per Gültigkeit eingetragen.
Meine frage ist ob es möglich wäre wenn die nummern(Zellinhalt) von Tabelle1 in Tabelle2 vorhanden sind die Ganze Zeile in Tabelle1 mit der nummer zu löschen?
ich hoffe die frage ist verstädlich.
Vielen Dank im Voraus
Gruß

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn inhalt in andere Tab. vorhanden, dann zei
30.05.2007 21:43:45
fcs
Hallo Abdullah,
hier sind zwei Makros, die die Löschaktion durchführen.
Das 1. Makro gleicht in einem Durchlauf die eingegeben Werte im 2. Blatt mit der Auswahlliste im 1. Blatt ab und löscht alle Zeilen, deren Werte im 2. Blatt vorkommen.
Das 2. Makro löscht "online" die Zeile im Blatt 1 wenn im Blatt 2 ein Wert eingegebn wird. In bin mir nur nicht sicher, ob es in Verbindung mit der Gültigkeitsauswahl per Drop-Down funktioniert. Zumindest unter Excel97 funktioniert es nicht wie gewünscht. Das 2. Makro muss du im VBA-Editor einfügen unter der Tabelle2 in der die Daten eingegeben werden.
Die Zellbereiche im Blatt 2, in dem die Werte eingegebn werden muss du natürlich entspechend anpassen.
Gruß
Franz

Sub WerteAus2in1löschen()
'Löscht Zeile in Tabelle1, wenn Wert in Spalte A im Bereich in Tabelle2 vorhanden
Dim wks1 As Worksheet, wks2 As Worksheet
Dim rngZelle1 As Range, rngZelle2 As Range, rngBereich2 As Range
Set wks1 = Worksheets("Tabelle1") 'Tabelle mit Liste in Spalte  A
Set wks2 = Worksheets("Tabelle2") 'Tabelle mit den Eingabewerten
'Eingabebereich in Tabelle2 vorgeben (hier z,B. Spalten 2 bis 3 ab Zeile 2)
With wks2
Set rngBereich2 = .Range(.Cells(2, 2), .Cells(.UsedRange.Row + _
.UsedRange.Rows.Count - 1, 3))
End With
With wks1
For Each rngZelle2 In rngBereich2
If Not IsEmpty(rngZelle2) Then
Set rngZelle1 = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)) _
.Find(what:=rngZelle2.Value, LookIn:=xlValues, LookAt:=xlWhole)
If rngZelle1 Is Nothing Then
'do nothing
Else
rngZelle1.EntireRow.Delete shift:=xlShiftUp
End If
End If
Next
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Löscht Zeile in Tabelle1, wenn Wert in Spalte A gleich eingegebenem Wert _
im Bereich in Tabelle2
Dim wks1 As Worksheet, wks2 As Worksheet
Dim rngZelle1 As Range, rngZelle2 As Range, rngBereich2 As Range
If Target.Cells.Count = 1 Then
Set wks1 = Worksheets("Tabelle1") 'Tabelle mit Liste in Spalte  A
Set wks2 = Worksheets("Tabelle2") 'Tabelle mit den Eingabewerten
'Eingabebereich in Tabelle2 vorgeben (hier z,B. Spalten 2 bis 3 ab Zeile 2)
With wks2
Set rngBereich2 = .Range(.Cells(2, 2), .Cells(.UsedRange.Row + _
.UsedRange.Rows.Count - 1, 3))
End With
If Not Intersect(Target, rngBereich2) Is Nothing Then
With wks1
If Not IsEmpty(Target) Then
Set rngZelle1 = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)) _
.Find(what:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If rngZelle1 Is Nothing Then
'do nothing
Else
rngZelle1.EntireRow.Delete shift:=xlShiftUp
End If
End If
End With
End If
End If
End Sub


Anzeige

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige