AW: In Tabellenblätter 8-Ende ersetzen
23.09.2014 12:50:12
Adis
Hallo verstanden
die Antwort lag übrigens schon vor, und zwar hier: Cells.Replace What:=" ",
Es inspirierte mich den Gedanken über For Next Schleife zu Ende zu denken.
Wichtig ist dabei das xlPart durch xlWhole (nur ganze Zelle) ersetzt werden muss
Sonst werden auch alle Leerzeichen im vorhanden Text gelöscht. Sicher nicht erwünscht.
Es gibt zwei makro Versionen, je nachdem ob die Blaetter ab Position 8 bis Ende stehen,
oder sie beliebig angeordnet sind. Dafür ist die zweite Lösung gedacht.
Bitte zur Sicherheit erst einmal in einer Kopie Datei testen ab alls klappt.
Prüfen ob keine Daten veraendert wurden, ob im Text alle Space erhalten sind.
Sub Fortlaufend_bisEnde_löschen()
'Dieses Programm setzt voraus das alle zu löschenden Blaetter von Blatt 8 bis Ende stehen
For i = 8 To Sheets.Count
Sheets(i).Cells.Replace What:=" ", Replacement:="", LookAt:=xlWhole
Next i
End Sub
Sub Geschützt_bisEnde_löschen()
'Bei diesem Programm können die Blaetter beliebig angeordnet sein, egal!
'die zu schützenden Blastter werden namentlich erfasst und übersprungen
'der Trick besteht darin das beim namentlichen Blatt -kein- Befehl steht
'damit wird nur die ELSE Anweisung ausgeführt, alle unbenannten gelöscht
For i = 1 To Sheets.Count
Select Case Sheets(i).Name
Case "Tabelle1"
Case "kundendaten"
Case "Musterblatt"
Case "Beispielblatt"
Case "Tabelle3"
Case Else 'hier wird über ELSE nur meine "Tabelle2" gelöscht
Sheets(i).Cells.Replace What:=" ", Replacement:="", LookAt:=xlWhole
End Select
Next i
End Sub
Gruss Adis