Anzeige
Archiv - Navigation
1792to1796
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

Vergleich von den ersten elf Zeichen

Vergleich von den ersten elf Zeichen
23.11.2020 08:50:22
den
Hallo zusammen,
ich habe im Moment zwei Tabellen. Ich vergleiche bereits zwei Spalten (eine aus der jeweiligen Tabelle) mit einander und falls es keine Übereinstimmung in eine der Zellen in der Tabelle1 gibt dann wird die Zeile komplett gelöscht. Nun will ich das bei diesem Vergleich nur die ersten 11 Stellen der Zellen in den jeweiligen Spalten überprüft werden. Dazu würde ich gerne eine VBA Lösung bekommen.
Danke!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:00:17
den
Hallo Kerem,
es muss nicht immer VBA sein (insbesondere wenn es einmalig ist):
_ lege eine Hilfespalte mit =LINKS(A2;11)=LINKS(B2;11) //Vergleich der 11 ersten Zeichen
_ lege eine Hilfespalte mit =Zeile()
_ Kopieren, als Wert einfügen
_ füge die Filterung an
_ sortiere nach der Vergleichspalte
_ Filter nach WAHR, also wo die ersten Zeichen gleich sind
_ markieren den Block
_ entferne die Zeilen
_ sortiere wieder nach eingefrorenen Zeilennummer (originale Reihenfolge)
_ entferne die Hilfspalten
Mit Übung ca. 40 Sek.
Viel Erfolg
Yal
(da die Frage "mit VBA" war, lasse ich die frage asl unbenatwortet)
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:06:37
den
Hallo Yal,
danke erstmal für die Antwort! In meinem Fall muss es jedoch wirklich VBA sein, da die Sache auch nicht einmalig ist würde sich das ganze gut eignen.
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:21:05
den
Edit: Das heißt wenn die ersten 11 Zeichen nicht gleich sind soll die Zeile aus Tabelle 1 gelöscht werden.
AW: Vergleich von den ersten elf Zeichen
23.11.2020 09:29:51
den
Hi
am besten so.
1. Füge am Ende der Tabelle1 eine Hilfsspalte mit folgender Formel ein:
=Wenn(IstZahl(Vergleich(Links(A1;11)&"*";Tabelle2!A:A;0));Zeile();0)
2. Schreibe in die Überschirftenzeile der Hilfsspalte die 0
3. wende jetzt auf die ganze Tabelle1 die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an mit der Hilfesspalte als Kriterium
4. leere die Hilfsspalte.
und ja, das ist auch der Weg, den du in einer VBA-Lösung einsetzen solltest, weil es einfach zu programmieren und trotzdem sehr schnell ist.
Der Recorder hilft dir dabei.
Gruß Daniel
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 10:07:50
den
Hallo Kerem,
nach dem 2 Leute deine Frage nicht beantwortet haben, bekomme ich doch Mitleid ;-)
Da der Code auf "Me" zugreift, sollte er im Codefenster des Zielarbeitsblatt liegen.
Beim Löschen in Schleife hat man immer das Problem, dass wenn die Zeile 8 gelöscht wird, die Zeile 9 wird 8 und die nächste zu testen die ehemalige 10 ist. Die ehemalige 9 wird übersprungen. Deswegen löscht man "von unten": For .. Step -1
Sub Zeile_löschen()
Dim LZ As Integer 'Variable für letzte Zeile
Dim i
Const Z1 = 2 'erste Zeile, hier die zweite
Const S1 = 1 'erste Spalte, also A
Const S2 = 2 'Spalte nr 2, also B
LZ = Me.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = LZ To 2 Step -1
If LCase(Left(Me.Cells(i, S1), 11)) = LCase(Left(Me.Cells(i, S2), 11)) Then
Me.Cells(i, 1).EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
Viel Erfolg
Yal
Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 14:00:00
den
Hey Yal,
beispielhaft kann ich dir sowas sagen: In Tabelle 2 steht Mann und in Tabelle1 steh Manni, Mannu, Mannn. Nach einem normalen Vegrleich wären die Zellen in Tabelle 1 nicht gelöscht deshalb sollen nur die ersten 4 Zeichen verglichen werden womit dann die Zellen gelöscht werden würden. Es wäre nett wenn du meinen Code dafür modifizieren könntest.
Hier mal mein Code:

Einspalte = -1
For j = 1 To 999
If ws.Cells(1, j) = KOSTENSTELLE Then
Einspalte = j
Exit For
End If
Next j
If Einspalte > 0 Then
If Not Einspalte = "" Then
For IntZeile = ZeilenanzahlNSD To 2 Step -1
WertGefunden = False
strwert1 = ws.Cells(IntZeile, CInt(Einspalte)).Value
For IntZeileWS2 = 1 To 3
strwert2 = ws2.Cells(IntZeileWS2, 1).Value
If strwert1 = strwert2 Then
WertGefunden = True
Exit For
End If
Next IntZeileWS2
If WertGefunden = False Then 'Wenn es kein Übereinstimmung gibt dann...
res = ws.Cells.Rows(IntZeile).Delete '... ganze Zeile löschen.
End If
Next IntZeile
End If
Else

Anzeige
AW: Vergleich von den ersten elf Zeichen
23.11.2020 18:01:03
den
Hallo Kerem,
Sub LöschListe_durchgehen()
Dim i
Dim WQ As Worksheet 'Quelle
Dim WZ As Worksheet 'Ziel
Set WQ = ThisWorkbook.Worksheets("Tabelle1")
Set WZ = ThisWorkbook.Worksheets("Tabelle2")
For i = 1 To 999
Zeile_löschen WZ, 1, WQ.Cells(i, 1)
Next
End Sub
Sub Zeile_löschen(ZielTab As Worksheet, ZielSpalte As Integer, RefText As String)
Dim i
For i = ZielTab.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 2 Step -1
If InStr(1, ZielTab.Cells(i, ZielSpalte), RefText) = 1 Then
ZielTab.Cells(i, 1).EntireRow.Delete Shift:=xlUp
End If
Next
End Sub
Bitte setzt Dich mit dem Coding auseinander. Aus "Basiskenntnisse" sollte mehr werden.
Viel Erfolg
Yal
Anzeige

265 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige