Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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
Antworten Top
#5
Wow, jetzt läuft das richtig schnell, Dankeschön !

Schönes Wochenende und viele Grüße.

Moritz
Antworten 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
Antworten Top
#7
Code:
Sub M_snb()
    Columns(1).Replace "*" & vbLf, ""
End Sub
Antworten 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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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