Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1400to1404
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

Filtern nach bestimmten Wert

Filtern nach bestimmten Wert
19.01.2015 16:02:31
Marvin
Hallo,
ich befinde mich in folgender Situation:
In meinem Tabellenblatt moechte ich jede Zeile loeschen, bei der in der Spalte A der Wert INTERCO enthalten ist.
Das Makro wird von einer anderen Datei aus gestartet.
Folgenden Code hab ich mir zurechtgeschrieben, funktioniert aber nicht:
Sub FilterTP()
Dim i As Long
For i = Workbooks("Zieldatei.xlsx").Sheets("TP").Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 1) = "INTERCO" Then
Rows(i).Delete
End If
Next i
End Sub

Ich bekomme keine Fehlermeldung, allerdings sind die Werte nach wie vor vorhanden...
Hat jemand eine Idee?
Gruss
Marvin

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filtern nach bestimmten Wert
19.01.2015 16:11:49
yummi
Hallo Marvin,
ist die Datei Zieldatei.xlsx denn vorhanden und geöffnet? und hat diese auch ein Tabellenblatt TP?
Dann sollte es gehen, nutz einfach mal den debugger um zu sehen was bei dir passiert.
Gruß
yummi

AW: Filtern nach bestimmten Wert
19.01.2015 16:12:57
ChrisL
Hi Marvin
ungetestet...
Sub FilterTP()
Dim i As Long
With Workbooks("Zieldatei.xlsx").Sheets("TP")
For i = .Range("A65536").End(xlUp).Row To 1 Step -1
If .Cells(i, 1) = "INTERCO" Then
.Rows(i).Delete
End If
Next i
End With
End Sub

cu
Chris

AW: Filtern nach bestimmten Wert
19.01.2015 16:23:14
Marvin
Hi,
soll ueber VBA sein und sowohl Datei, als auch Blatt sind vorhanden und geoeffnet.
Zur Loesung von Chris:
Der Debugger moechte ein End With, was ich auch in die vorletzte Zeile eingefuegt habe, allerdings bekomme ich dann die naechste Fehlermeldung, Error 13 Type mismatch

Anzeige
AW: Filtern nach bestimmten Wert
19.01.2015 16:48:53
Michael
Hallo!
Dann hier noch meine Variante, die sich anschaut, ob in der durchsuchten Zelle "INTERCO" in irgendeiner Form als String vorkommt (Annahme beide Tabellen geöffnet):
Sub RausMitInterco()
Dim i As Long
Dim j As Long
i = Workbooks("Interco.xlsx").Sheets("Tabelle1").Cells(1048576, 1).End(xlUp).Row
For j = 1 To i
If InStr(1, Workbooks("Interco.xlsx").Sheets("Tabelle1").Cells(j, 1).Value, "INTERCO",  _
vbTextCompare) > 0 Then
Workbooks("Interco.xlsx").Sheets("Tabelle1").Cells(j, 1).EntireRow.Delete
End If
Next j
End Sub
Wahrscheinlich nicht mehr notwendig - aber vielleicht kannst Du's ja brauchen.
Liebe Grüße
Michael

Anzeige
AW: Filtern nach bestimmten Wert
19.01.2015 17:21:24
Marvin
Hallo Michael,
die Hilfe wird sehr wohl noch gebraucht :D
Wenn ich den Code ausfuehre, nachdem ich Datei- und Tabellenname angepasst habe, bekomme ich folgende Fehlermeldung:
Run-time error '13': Type mismatch
Viele Gruesse
Marvin

AW: Filtern nach bestimmten Wert
20.01.2015 08:29:38
ChrisL
Hi Marvin
Ich kann deinen Fehler nicht nachvollziehen. Poste nochmals deinen ganzen Code oder noch besser eine Beispieldatei.
cu
Chris

AW: Filtern nach bestimmten Wert
20.01.2015 09:27:32
Michael
Hallo Marvin! Guten Morgen!
Freut mich, dass meine Hilfe gebraucht wird :-). Leider kann auch ich den von Dir genannten Fehler nicht nachvollziehen - habe meine Routine ebenfalls nochmal mit Deinem ursprünglich genannten Datei- und Tabellennamen durchlaufen lassen und es funktioniert wie gewünscht (nach Groß-/Kleinschreibung unterscheidet mein Code allerdings nicht!).
Wie Chris also schon geschrieben hat: Zeig doch nochmal Deinen genauen Code...
Inzwischen liebe Grüße
Michael

Anzeige
AW: Filtern nach bestimmten Wert
20.01.2015 10:37:21
Marvin
Hallo ihr zwei,
ich weiss nicht in wie weit es hilfreich waere den kompletten Code zu posten, da der aktuell 500 Zeilen lang ist.
Was vllt noch als Information hilfreich sein koennte, ist die Tatsache, dass das Feld einen SVERWEIS enthaelt, der dann den Wert Interco, oder zwei andere liefert.
Der SVERWEIS wird vorher automatisch generiert ueber ein anderes Makro, das so aussieht:
Sub AddContentParty()
'Adds content to Party column
Workbooks("Zieldatei.xlsx").Sheets("MASTER").Range("A2").Value = "=" & "VLOOKUP(F2,[Book1. _
xlsm]Party!$A$2:$B$360,2,FALSE)"
End Sub
Dieser Code wird im Sheet Master ausgefuehrt, der die Grundlage des Dokuments darstellt.
Danach wird der komplette Inhalt dieses Sheets in 3 andere Sheets kopiert und entsprechend der von mir benoetigte Filter angewandt.
Vielen Dank fuer eure Hilfe!
Marvin

Anzeige
AW: Filtern nach bestimmten Wert
20.01.2015 11:26:19
Michael
Hallo Marvin!
Aha ;-) - na das macht schon einen Unterschied. Habe Dir meine Routine einmal dahingehend angepasst, nicht im Wert der Zelle, sondern in ihrem Text zu suchen. Habe es bei mir mit Dummy-Werten über einen SVerweis getestet - klappt!
Sub RausMitInterco()
Dim i As Long
Dim j As Long
i = Workbooks("Zieldatei.xlsm").Sheets("TP").Cells(1048576, 1).End(xlUp).Row
For j = 1 To i
If InStr(1, Workbooks("Zieldatei.xlsm").Sheets("TP").Cells(j, 1).Text, "INTERCO", _
vbTextCompare) > 0 Then
Workbooks("Zieldatei.xlsm").Sheets("TP").Cells(j, 1).EntireRow.Delete
End If
Next j
End Sub
Klappt es bei Dir auch wie gewünscht?
Lg
Michael

Anzeige
AW: Filtern nach bestimmten Wert
20.01.2015 11:51:57
Marvin
Jetzt funktionierts, vielen vielen Dank!

Danke für die Rückmeldung AW: Filter nach bestimmt
20.01.2015 12:37:35
Michael
Hallo Marvin!
Das freut mich! Danke für Deine Rückmeldung!
Schönen Tag
Michael

AW: Filtern nach bestimmten Wert
19.01.2015 16:15:54
Michael
Hallo Marvin!
Möchtest Du wirklich eine VBA-Lösung? Eine auch sehr schnelle Möglichkeit lässt sich hier relativ leicht über eine Hilfsspalte und Excel-Bordmittel erreichen. Hier ein Bsp: Gib in eine zusätzliche Spalte folgende Formel ein
=SUCHEN("INTERCO";A1)
und kopiere sie nach unten wie benötigt (Spaltenende A).
Danach Hilfsspalte markieren - Gehe zu... - Inhalte... - Formeln (nur Zahlen anhaken) - dann mit der rechten Maustaste auf einen markierten Eintrag und Löschen - ganze Zeile löschen...
Ähnliche Lösungen findest Du hier öfter - gerade bei sehr langen langen Listen ist das oft einfacher und stabiler als ein Makro mit Schleifendurchlauf.
Liebe Grüße
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige