Erste Zeile aus Zelle löschen
#1
Hallo zusammen,

ich habe eine Excel Tabelle in der Daten in einer Zelle durch Zeilenumbruch voneinander getrennt sind. Dies sieht wie folgt aus:

Staubsauger: 234235
Lokalisierung: Deutschland
Mit Beutel

Nun möchte ich mit einem Excel Makro die erste Zeile in der Zelle löschen, wobei die Zeichenanzahl variieren kann.
Bis dato schaffe ich es nur Zeilen mit gleicher Länge zuverlässig zu löschen.
Wäre super wenn Ihr einen Tipp habt.

Viele Grüße

Moritz
Top
#2
Hallo Moritz,
Sub ErsteZeileInZelleWeg()
 Dim rngZ As Range
 For Each rngZ In Selection.Cells
   rngZ.Value = Mid(rngZ.Value, InStr(1, rngZ.Value, Chr(10)) + 1)
 Next rngZ
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • kosmoritz
Top
#3
Vielen Dank Uwe, das funktioniert schon mal super.
Hättest du noch eine Idee den Code performanter zu machen?
Bei meinem Excel Dokument welches ca. 1000 Zeilen enthält, benötigt die Ausführung des Codes fast 2 Minuten.

Viele Grüße

Moritz
Top
#4
Hallo Moritz,

probiere mal so:
Sub ErsteZeileInZelleWeg()
 Dim lngX As Long, lngY As Long
 Dim varT As Variant
 varT = Selection.Value
 For lngX = 1 To UBound(varT, 1)
   For lngY = 1 To UBound(varT, 2)
     varT(lngX, lngY) = Mid(varT(lngX, lngY), InStr(1, varT(lngX, lngY), Chr(10)) + 1)
   Next lngY
 Next lngX
 Selection = varT
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • kosmoritz
Top
#5
Wow, jetzt läuft das richtig schnell, Dankeschön !

Schönes Wochenende und viele Grüße.

Moritz
Top
#6
Mein Excel Dokument hat sich etwas verändert, aufgrund dessen die Funktion nicht mehr richtig funktioniert.
Besteht die Möglichkeit den Algorithmus nur auf eine Spalte zu beschränken?

VG

Moritz
Top
#7
Code:
Sub M_snb()
    Columns(1).Replace "*" & vbLf, ""
End Sub
Top
#8
Danke schon mal.
Leider löscht dein Code mir den kompletten Zellinhalt, abgesehen von der letzten Zeile.
Ich würde aber nur gerne die erste Zeile löschen + alle Zeilenumbrüche entfernen.
Das mit den Zeilenumbrüchen konnte ich hiermit schon mal voranbringen:

Sub M_snb()
    Columns(1).Replace vbLf, ","
End Sub


VG
Moritz
Top
#9
Geht so:


Code:
Sub M_snb()
  [B1:B100] = [index(substitute(A1:A100,char(10),"#",1),)]
  Columns(2).Replace "*#", ""
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • kosmoritz
Top
#10
Dankeschön! Hat dann mit meiner Anpassung funktioniert.

  [E1:E1500] = [index(substitute(E1:E1500,char(10),"#",1),)]
  Columns(5).Replace "*#", ""

Schönes Wochenende

Moritz
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste