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

Selectives Löschen von Spalten

Selectives Löschen von Spalten
12.02.2008 11:31:00
Spalten
Hallo..
Leider sitze ich hier vor einem Problem, was von der Logik her eigentlich keins ist.
auch das Kopieren von aufgenommenen Makros half nicht:
Ich habe ein Tabellenblatt, wo ich die Zellen C3-C28 mit dem String strText vergleiche. Jede Spalte, in dem der Zellinhalt nicht mit strText übereinstimmt soll gelöscht werden.
Aktuell habe ich folgendes in VBA programmiert, aber ich bekomme erstaunlicher Weise den Zellinhalt C3-C28 nicht ausgelesen und auch das löschen klappt nicht, obwohl ja jetzt jedesmal der If-Fall eintritt.
Quellcode:
For varElement = 3 To 28
If strText Cells(4, varElement).text Then
ActiveSheet.colums(varElement).Delete Shift:=xlShiftToLeft
End If
Next varElement

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selectives Löschen von Spalten
12.02.2008 13:28:00
Spalten
Hi Andreas,
Erstaunlicherweise redest du von Spalten
Referenzierst mit C3-C28 aber Zeilen (3-28) in einer Spalten (C) und
im Code wiederum 1 Zeile (4) und mit VarElement die Spalten 3 bis 28 (C:AB), also schau dir nochmals die Hilfe zu
Cells(RowIndex, ColumnIndex) an.
Zudem ist die .Text Eigenschaft einer Zelle ungeeignet, besser wäre .Value
GreetZ Renée

AW: Selectives Löschen von Spalten
12.02.2008 13:36:00
Spalten
Es ist so, dass in der Zeile "C3-C28" ein String steht, der im Vergleich mit dem vorher festgelegten String strtext vergleichen wird. Besteht keine Übereinstimmung soll die Spalte in der der Wert der C-Zeile nicht mit strtext übereinstimmt gelöscht werden.
Mittlerweile klappt der vergleich, allerdings funktioniert das Löschen nicht.

Anzeige
AW: Selectives Löschen von Spalten
12.02.2008 13:40:00
Spalten
@Renee:
Du hast recht!
ich hab da Mist geschrieben.
es ist aber definitiv so, dass die zu vergleichenden Werte in der 3. Zeile stehen..

AW: Selectives Löschen von Spalten
12.02.2008 13:42:00
Spalten
Hallo Andreas,
ich verstehe dein Problem nicht. C3 - C28 stehen doch in einer Spalte, nicht in einer Zeile. Dein Code prüft aber, ob in den Zellen C4 bis AB4 der strText steht.
Abgesehen vom Syntaxfehler Colums, richtig wäre Columns, ist ActiveSheet eine Eigenschaft, aber kein Range-Objekt, obwohl man manchmal den Eindruck hat, dass es in bestimmten Fälle so benutzt wird. Ersetze die Zeile durch
Application.ActiveSheet.Columns(varElement).delete Shift:=xlShiftToLeft
Jetzt nehme ich einmal an, dass die Refenrenzwerte in der Zeile 4 von C4 bis AB4 stehen und die Spalten gelöscht werden sollen, bei denen der Wert in der 4. Zeile nicht mit strText übereinstimmt. Von der Logik her wirst du bei deinem Code Probleme erhalten, weil du Spalten löscht, so dass der Zeiger varElement nach dem Löschen eine Spalte überspringt, da er sich ja um 1 erhöht, die bisherige Spalte aber im Spaltenindex um 1 erniedrigt wurde. Das vermeidest du, indem du von hinten anfängst:
For varElement = 28 To 3 Step -1
Ich hoffe, dir geholfen zu haben.
Holger
Columns

Anzeige
AW: Selectives Löschen von Spalten
12.02.2008 13:54:00
Spalten
Hallo Holger..
Sorry für die Verwirrung, weil ich da nicht so ganz bei der Sache war mit dem Beschreiben. wollte es halt genau machen, ist aber daneben gegangen.
Die Sache mit dem range-Objekt usw ist mir noch nciht geläufig. bin halt noch einsteiger.
Allerdings hat das Rückwärtsdurchlaufen der Schleife und die Umstellung der Delete-Anweisung schon die Lösung gebracht.
Daher ein dickes DANKE..

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige