Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zeilen mit nicht sichtbaren Zeichen löschen

Betrifft: Zeilen mit nicht sichtbaren Zeichen löschen von: Micha
Geschrieben am: 15.08.2014 14:28:54

Hallo Excelexperten,

ich habe in einem Tabellenblatt durch ein Makro nicht sichtbare Zeichen in Spalte A.
Es sind: ;;;;;;;;;;; die nur im Editor sichtbar sind. Das Tabellenblatt wird als .csv gespeichert. Da ich mit der csv Datei weiter arbeiten muss, kann ich diese Zeichen nicht gebrauchen. Die Zeichen beginnen nach dem letzten Eintrag in Spalte A. Wie kann ich die kpl. Zeilen mit dem nicht sichtbaren Zeichen per Makro löschen, oder wenigstens die Zeichen löschen. Mit Replace funktioniert es leider nicht. Die Zeichen sind bis Zeile 300. Ich möchte also nach dem letzten sichtbarem Eintrag (Länge kann variieren) in Spalte A alle Zeilen bis Zeile 300 löschen. Geht das??

Beste Grüße

und Dank - Micha

  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Michael
Geschrieben am: 15.08.2014 15:00:07

Hallo Micha,

wenn Du die Daten selbst schreibst, müßtest Du doch wissen, bis zu welcher Zeile Du Einträge hast?
Von letzterZeile+1 bis 300 schreibst Du dann einfach ein "" in die Zellen.

Oder laß das Makro suchen:

Sub StrichpunktSuchen()
Dim i, j As Long
i = 1
While Mid(ActiveSheet.Range("A" & i).Value, 1, 1) <> ";"
  i = i + 1
Wend
MsgBox "zeile: " & i            ' nur zum Testen
For j = i To 300
  ActiveSheet.Range("A" & i).Value = ""
Next j
End Sub
Die s*u*b sucht das erste Auftreten des ";" an Position 1 des Strings in Zelle Ai und löscht alle ab da.

Du kannst das Ding ja nach Bedarf auf mehrere ;; erweitern, z.B.:
Mid(ActiveSheet.Range("A" & i).Value, 1, 3) <> ";;;"

Happy Exceling,

Michael


  

Betrifft: Nachtrag von: Michael
Geschrieben am: 15.08.2014 15:07:06

Noch was: falls das Makro nicht geht, könnte es sein, daß sich noch ein paar tabs in der Zelle verstecken.

Klicke einfach eine der "falschen" Zellen an (also etwa A299) und führe das nachfolgende Makro aus:

Sub ZeichenTesten()
Dim i As Long
i = 1
While i < Len(ActiveCell.Value)
  MsgBox (Asc(Mid(ActiveCell.Value, i, 1)))
  i = i + 1
Wend
End Sub
Das spuckt die Nr. aller Zeichen aus und Du kannst den Vergleich im ersten Makro entsprechend anpassen.

Happy Exeling,

Michael


  

Betrifft: AW: Nachtrag von: Micha
Geschrieben am: 15.08.2014 15:25:36

Hallo Michael,
vielen Dank. Jedoch funktionieren beide Makros nicht. Makro 1 stoppt mit Laufzeitfehler 1004. Und der Nachtrag zeigt gar keine Wirkung. (Keine MsgBox). Ich weiß leider nicht woran das liegen könnte.

Trotzdem vielen Dank und beste Grüße Micha


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Adis
Geschrieben am: 15.08.2014 15:57:45

Hallo

Probier es mal damit. Bei mir waren die Beispieldaten im Bereich A4:A12
Den Bereich entsprechend aendern. Die Semikolon in Instr() sind variabel

Sub Makro1()
   Sheets("Tabelle1").Select
For Each i In Range("A4:A12")
   If InStr(i, ";;;;;;;;;;;") Then i.Value = Empty
Next i
End Sub
Gruss Adis


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Daniel
Geschrieben am: 15.08.2014 16:05:16

Hi Adis

das kann nicht funktionieren.
Die ";;;;;;" stehen nicht in Excel.
Diese Zeichen werden erst beim Speichern als CSV-Datei erzeugt, wenn die Zeile eine Leerzeile ist und keine Daten enthält.
Daher kannst du sie auch nicht finden und nicht löschen.
Gruß Daniel


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Daniel
Geschrieben am: 15.08.2014 15:13:45

HI

diese Zeichen kannst du in Excel wahrscheinlich nicht löschen, denn diese sind in Excel noch gar nicht vorhanden.
Diese Zeichen entstehen erst beim Speichern als CSV, weil es die Spaltentrennzeichen sind, welche in der CSV-Datei anzeigen, wenn eine neue Spalte anfängt.

Beim Speichern als CSV haben alle Zeilen dieselbe Anzahl von Spalten, diese richtet sich nach dem genutzen Bereich von Excel.
(die letze Zelle des genutzen Bereichs kannst durch drücken von STRG+ENDE auswählen)
sind jetzt in einer Zeile nicht alle Spalten bis zur letzten Spalte gefüllt, entstehen diese ";;;;;".
das gilt natürlich auf für Leerzeilen.

Gruß Daniel


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Micha
Geschrieben am: 15.08.2014 15:32:55

Hallo Daniel,
da hast Du sicher recht. Wenn ich jedoch die Zeilen vor dem Speichern händisch lösche werden in der .csv
mit dem Texteditor geöffnet keine ;;;;; mehr angezeigt. Daher mein Gedanke die Zeilen per Makro zu löschen. Mein Problem dabei ist nur, dass das Ende in Zeile A variabel ist. Also mal A13, mal A24 usw.
Ich würde gerne testen, ob es funktioniert die Zeilen nach der letzten sichtbare Zeile zu löschen. Dann bis A300.

Beste Grüße
und Dank - Micha


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Daniel
Geschrieben am: 15.08.2014 15:42:39

Hi

dann probiere mal:

Range(Cells(Rows.count, 1).end(xlup).Offset(1, 0), Cells(rows.Count, 1)).EntireRow.Delete

das löscht dann alles ab der letzen Zeile mit Wert in Spalte A bis zum Ende.

alle Zeilen, die in Spalte A leer sind, kannst du mit folgendem Befehl löschen:
Columns(1).Specialcells(xlcelltypeblanks).entireRow.Delete
Gruß Daniel


  

Betrifft: AW: Zeilen mit nicht sichtbaren Zeichen löschen von: Micha
Geschrieben am: 15.08.2014 15:54:43

Hallo Daniel,

SUPER Columns(1).Specialcells(xlcelltypeblanks).entireRow.Delete das war es!!!

Jetzt keine ;;;;;;;;; mehr im Texteditor.

Beste Grüße
und vielen Dank - Micha


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen mit nicht sichtbaren Zeichen löschen "