Microsoft Excel

Herbers Excel/VBA-Archiv

In Tabellenblätter 8-Ende ersetzen

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 Sub
Gruss 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


 

Beiträge aus den Excel-Beispielen zum Thema "In Tabellenblätter 8-Ende ersetzen"