![]() |
Betrifft: In Tabellenblätter 8-Ende ersetzen
von: Elias
Geschrieben am: 22.09.2014 22:58:24
Hallo zusammen
ich glaube ich habe etwas sehr einfaches, wo ich momentan einfach nen Knoten in meinem Hirn hab...
Ich müsste in den Tabellenblättern 8 bis Ende , deren Name ich nicht weiss, alle falschen Leerschläge per vba durch "" ersetzen.
Kann mir da jemand weiterhelfen? Das sollte doch eigentlich nicht schwierig sein, oder?
Danke schonmals herzlichst im Voraus.
LG Elias
![]() ![]() |
Betrifft: AW: In Tabellenblätter 8-Ende ersetzen
von: Adis
Geschrieben am: 22.09.2014 23:15:46
Hallo
was sind bitte falsche Leerschläge? Ich kann mir darunter nichts vorstellen.
Gruss Adis
![]() ![]() |
Betrifft: AW: In Tabellenblätter 8-Ende ersetzen
von: Elias
Geschrieben am: 22.09.2014 23:19:05
Hi Adis
Es hat zwischendurch statt einer leere Zelle einen Leerschlag drin, der nicht da sein sollte. Im Makrorekorder sieht dieses ersetzen so aus:
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
![]() ![]() |
Betrifft: AW: In Tabellenblätter 8-Ende ersetzen
von: Adis
Geschrieben am: 23.09.2014 12:50:12
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 SubGruss Adis
![]() ![]() |
Betrifft: AW: In Tabellenblätter 8-Ende ersetzen
von: Elias
Geschrieben am: 23.09.2014 13:59:41
Hi Adis, danke vielmals. Ich hatte irgendwie einen Knoten beim Blätter nach Reihenfolge anwählen.
Läuft super.
Gruss Elias
![]() |