Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten nach Kriterium über merhere Tabellen lösch

Spalten nach Kriterium über merhere Tabellen lösch
18.12.2006 00:04:04
doey
Hi,
hoffe Ihr könnt mir helfen...
Versuche über mehrere Tabellenblätter, alle Spalten die z. B. in der 4. zeile den Wert 0 haben, zu löschen!
Ich habe hier ein Skript was das schon bewältigt!
Das was mich nervt ist, dass wenn z. B. 50 Tabellenblätter abgearbeitet werden sollen, dass ziemlich lange dauert.
Also mir geht es darum, das Skript so anzupassen, dass es im Nu abgearbeitet ist!
Vielleicht hat ja jemand eine Idee?!?
hier das gebastelte Skript:

Sub SpaltenNachKriteriumLöschen()
Dim c As Long, cz As Long
cz = Range("IV4").End(xlToRight).Column
For a = 2 To Sheets.Count
For c = cz To 1 Step -1
If Sheets(a).Cells(4, c).Value = "0" Then
Sheets(a).Columns(c).Delete
End If
Next c
Next a
End Sub

Gruß doey

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten nach Kriterium über merhere Tabellen lösch
18.12.2006 02:06:47
Daniel
Hallo
Folgende möglichkeit, geht aber nur, wenn in den Zeile 4 keine Leerzellen enthalten sind (diese werden mit gelöscht)
Das ganze basiert darauf, daß die 0-Werte durch Leerzellen ersetzt werden.
Diese Leerzellen können von Excel gezielt selekiert werden (entspricht BEARBEITEN-GEHE Zu-INHALTE-LEERZELLEN.
Dadurch entfällt die zeitaufwendige For-Schleife.

Sub Makro2()
Dim a As Long
For a = 2 To Sheets.Count
With Sheets(a).Rows(4)
.Formula = .Value
On Error Resume Next
.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
.SpecialCells(xlCellTypeConstants, 23).Formula = "Hier deine Formel eintragen)"
On Error GoTo 0
End With
Next
End Sub

Wenn die Zeile 4 keine Formeln, sondern Konstant-Werte entält, sieht der Code so aus:

Sub Makro2()
Dim a As Long
For a = 2 To Sheets.Count
With Sheets(a).Rows(4)
On Error Resume Next
.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
On Error GoTo 0
End With
Next
End Sub

Gruß, Daniel
Anzeige
AW: Spalten nach Kriterium über merhere Tabellen l
18.12.2006 15:48:45
doey
Hi Daniel,
danke für deine Antwort.
Leider kommen in der Zeile 4 auch Leerzeilen vor, die dann auch gelöscht werden!
Trotzdem ist es ein interessanter Ansatz.
Gruß doey
AW: Spalten nach Kriterium über merhere Tabellen l
18.12.2006 22:18:44
Daniel
Hallo
du kannst natürlich auch anstelle des "Blanks" einen Wahrheitswert (WAHR/FALSCH) in die Zellen mit 0 schreiben.
diese Wahrheitswerte kannsst du mit SpecialCells dann genausso selekieren wie die Leerzellen.
Wie es genau geht, kannst du am einfachsten mit dem Makro-Rekorder und der Hilfe rausfinden. (über Berarbeiten - Gehe zu - usw.)
Andere Alternative wäre, auf dem gleichen Weg erst die Leerzellen mit "xxx" oder was ähnlichem zu befüllen, dann wie beschrieben die Spalten mit 0-Werten löschen und dann die "xxx" wieder durch Blanks zu ersetzen.
Möglichkeiten gibts viele.
Gruß, Daniel
Anzeige
AW: Spalten nach Kriterium über merhere Tabellen l
20.12.2006 00:31:04
doey
hast mir sehr geholfen!
Danke :)
doey

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige