Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
460to464
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
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten suchen und ggf. löschen

Spalten suchen und ggf. löschen
28.07.2004 13:27:32
Cengiz
Hallo Excel-Freunde,
ich versuche, aus einer großen Tabelle alle Spalten zu löschen, die z.B. nicht die Zeichenfolge "6/2002" enthalten (d.h. alle Spalten löschen außer z.B. "USD 6/2002", "EUR 6/2002", etc.).
Die Spaltenüberschriften sind dabei folgendermaßen angeordnet:
..., USD 6/2002, USD 7/2002, ..., EUR 6/2002, EUR 7/2002, ...
Mit folgendem Code komme ich leider nicht weiter. Die erste Spalte, die "6/2002" enthält, wird zwar beibehalten, aber falls eine weitere Spaltenüberschrift die Zeichenfolge "6/2002" enthält, wird diese gelöscht.

Sub test()
Dim Time As String
Time = "6/2002"
With Worksheets(1)
Range("B1").Select
Set Wert = ActiveCell.Find(What:=Time, LookIn:=xlValues, LookAt:=xlPart)
Do While Not ActiveCell.Value = ""
If ActiveCell.Value = Wert Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.EntireColumn.Select
Selection.Delete
ActiveCell.Offset(0, 0).Select
End If
Loop
End With
End Sub

Ich wäre Euch sehr dankbar, wenn mir jemand weiterhelfen könnte.
Viele Grüße
Deepy

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten suchen und ggf. löschen
28.07.2004 16:11:21
Roland
Hallo Cengiz,
4x ohne Not select im Code . . . versuch das mal:

Sub Alternativ()
Dim i As Integer, str As String
str = "6/2002"
For i = Cells(1, 256).End(xlToLeft).Column To 2 Step -1
If Right(Cells(1, i), 6) <> str Then Columns(i).Delete
Next
End Sub

Gruß
Roland
AW: Spalten suchen und ggf. löschen
28.07.2004 16:28:34
Cengiz
Hallo Roland,
vielen Dank für deine Antwort. Leider funktioniert es noch nicht ganz. Ich werde noch ein wenig rumprobieren.
Gruß,
Cengiz
AW: Spalten suchen und ggf. löschen
29.07.2004 20:19:28
Björn
Hallo Cengiz,
was funktioniert denn nicht?
Wenn dir das Forum helfen soll, dann musst du schon etwas konkreter werden. Oder hast du die Frage unabsichtlich auf "noch offen" gesetzt?
Gruß
Björn
Anzeige
AW: Spalten suchen und ggf. löschen
29.07.2004 20:44:11
Roland
Hallo Björn,
so wie ich das sehe wurden die Überschriften von irgendwoher übernommen und könnten noch Leerzeichen am Ende enthalten. Dann funktioniert mein Makro natürlich nicht.
Gruß
Roland
AW: Spalten suchen und ggf. löschen
30.07.2004 09:57:05
Cengiz
Hallo,
entschuldigt bitte, ich hätte mich natürlich besser ausdrücken müssen.
Also, mein Problem ist, daß mit Hilfe Deines Makros, nicht in die nächste Zelle gesprungen wird. Du hast wohl Recht, daß es deswegen nicht funktioniert hat, weil in den Zellen evtl. noch Leerzeichen, etc. enthalten sind.
Die genannten Spaltenüberschriften waren lediglich Beispiele. Manchmal stehen auch weniger Zeichen in der Überschrift bzw. nach dem Datum steht noch etwas anderes. Mir ging es eigentlich darum, zu wissen, ob es eine allgemeine Methode gibt, welche bspw. nach der Zeichenkette "6/2002" in jeder Spaltenüberschrift sucht und alle Spalten löscht, die in der Überschrift diese Zeichenkette nicht enthalten (unabhängig davon, an welcher Stelle innerhalb einer Zelle diese Zeichenkette vorkommt).
Tut mir nochmal Leid für das Mißverständnis.
Viele Grüße und vielen Dank
Cengiz
Anzeige
AW: Spalten suchen und ggf. löschen
30.07.2004 11:43:21
Cengiz
Hallo ihr beiden,
ich habe noch ein paar kleine Änderungen vorgenommen und endlich die Lösung gefunden (der Teufel sitzt bekanntlich oft im Detail :-) ). Das Makro ist vielleicht ein wenig zu lang gefaßt, aber es funktioniert so, wie ich es haben wollte.

Sub test()
Dim Time As String
Time = ("*6/2002*")
Range("B1").Select
Do While Not ActiveCell.Value = ""
If ActiveCell Like Time Then
ActiveCell.Offset(0, 1).Select
ElseIf ActiveCell <> Time Then
ActiveCell.EntireColumn.Select
Selection.Delete
ActiveCell.Offset(0, 0).Select
End If
Loop
End Sub

Vielen Dank nochmal für Eure Mühen.
Cengiz
Anzeige
AW: Spalten suchen und ggf. löschen
30.07.2004 11:56:55
Roland
Na dann behaupte ich immer noch dass diese Version schneller ist ;-))

Sub Alternativ()
Dim i As Integer, str As String
str = "*6/2002*"
For i = Cells(1, 256).End(xlToLeft).Column To 2 Step -1
If Cells(1, i) Like str Then Columns(i).Delete
Next
End Sub

Gruß
Roland
AW: Spalten suchen und ggf. löschen
30.07.2004 11:56:59
Roland
Na dann behaupte ich immer noch dass diese Version schneller ist ;-))

Sub Alternativ()
Dim i As Integer, str As String
str = "*6/2002*"
For i = Cells(1, 256).End(xlToLeft).Column To 2 Step -1
If Cells(1, i) Like str Then Columns(i).Delete
Next
End Sub

Gruß
Roland
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige