Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen
zurück: Zelle finden - gleiche Zeile, Spalte D weiter: Bedingte Formatierung mit vorangegangener Analyse Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
07. Aug 2009, 05:27
Rufname:

Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hallo zusammen,
Wer kann ca. 35 Menschen das Leben erleichtern?
In einer Datei sind ca. 20.000 Datensätze. Jeder Datensatz besteht aus einer Excel Zeile.
Für jeden Datensatz (Excel Zeile) gibt es eine Beschreibung (String) in einer Zelle mit Zeilenumbruch. Beispiel eines Eintrags in der Zelle für einen Datensatz s.u.
----
PIN:
TYPE: STEP
INSIDE DIAMETER:
OUTSIDE DIAMETER:
LENGTH:
MATERIAL: S355 J2 G3
---
Frage: Wie lösche ich alle, bis auf die erste Zeile in der Zelle alle Zeilen, die nach dem Doppelpunkt KEINEN Wert enthalten?????

Erwartetes Ergebnis:

----
PIN:
TYPE: STEP
MATERIAL: S355 J2 G3
----

Besten Dank im Voraus!

Martin
Phelan XLPH
Fortgeschritten


Verfasst am:
07. Aug 2009, 07:23
Rufname: Phelan


AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

moin,

Code:
Sub Test_ZellTextEditieren()
With Tabelle1 'Anpassen  Tabelle und Bereich >> hier Spalte A
    ZellTextEditieren .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
End Sub

Sub ZellTextEditieren(Bereich As Range)
Dim zell As Range
Dim arr As Variant
Dim arrOut() As Variant
Dim i As Integer, k As Integer
Application.ScreenUpdating = False
For Each zell In Bereich
    arr = Split(zell.Text, vbLf)
    For i = 0 To UBound(arr)
        If Trim(Split(arr(i), ":")(1)) <> "" Or i = 0 Then
            ReDim Preserve arrOut(k)
            arrOut(k) = arr(i)
            k = k + 1
        End If
    Next
    If k <> 0 Then
        zell = Join(arrOut, vbLf)
        Erase arrOut
        k = 0
    End If
Next
Application.ScreenUpdating = True
End Sub

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
07. Aug 2009, 13:09
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hi Glücksritter,

probiere gerade das Makro aus und bekomme bei

If Trim(Split(arr(i), ":")(1)) <> "" Or i = 0 Then

den Run Time Error 9 - Subscript out of range

Weisst Du, woran das liegt? Hätte ja nicht gedacht, dass es dafür überhaupt nen code gibt:)

Herzlichen Dank schon mal!

Martin
Gast



Verfasst am:
07. Aug 2009, 14:03
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hallo, versuchs mal so:
Code:

Sub leereweg()
Dim arr, tmp As String, i As Long, n As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If InStr(Cells(i, 1).Value, vbLf) > 0 Then
        arr = Split(Cells(i, 1).Value, vbLf)
        tmp = arr(0)
        For n = LBound(arr) + 1 To UBound(arr)
            If Right(arr(n), 1) <> ":" Then tmp = tmp & vbLf & arr(n)
        Next n
        Cells(i, 1) = tmp
    End If
Next i
End Sub



Gruß Frank
Gast



Verfasst am:
07. Aug 2009, 21:28
Rufname:


AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Danke!

Dieses Makro funktioniert hslbwegs:

Aus

-----------
CYLINDER,HYDRAULIC:
DIAMETER PISTON: 80mm
STROKE: 700mm
OVERALL LENGTH:
TYPE: DOUBLE ACTING
SEALS:
------------
wird
------------
CYLINDER,HYDRAULIC:
DIAMETER PISTON: 80mm
STROKE: 700mm
OVERALL LENGTH:
TYPE: DOUBLE ACTING
------------
Es wird nur die letzte Zeile gelöscht. Wenn ich das Makro mehrmals laufen lasse, passiert nichts mehr.

Ich hab ja schon ein schlechtes Gewissen, Dich nach einem weiteren Versuch zu fragen. Wenn Du es allerdings hinbekommst, bist Du nicht Glücksritter sondern Glückskönig von 35 Leuten in Alabama...

Thanks and take care,

Martin
r.mueller
Gast


Verfasst am:
07. Aug 2009, 22:26
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hallo

Code:

Sub MachDieLeerenWeg()
Dim vntArr As Variant
Dim strTmp As String
Dim lngZeile As Long
Dim lngN As Long
For lngZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
 If InStr(Cells(lngZeile, 1).Value, vbLf) > 0 Then
  vntArr = Split(Cells(lngZeile, 1).Value, vbLf)
  strTmp = vntArr(0)
  For lngN = LBound(vntArr) + 1 To UBound(vntArr)
   If Right(Trim(vntArr(lngN)), 1) <> ":" Then
    strTmp = strTmp & vbLf & vntArr(lngN)
   End If
  Next
  Cells(lngZeile, 1) = strTmp
 End If
Next
End Sub


Gruß
r.mueller
Gast



Verfasst am:
07. Aug 2009, 22:38
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

...hmm, da sind offenbar Leerzeichen hinter dem : !
Muß mir was überlegen !

Gruß Frank
r.mueller
Gast


Verfasst am:
07. Aug 2009, 22:47
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hallo

> da sind offenbar Leerzeichen hinter dem :

diese werden durch:

Code:
.....Trim(vntArr(lngN)).....


schon ignoriert

Gruß
r.mueller
Phelan XLPH
Fortgeschritten


Verfasst am:
07. Aug 2009, 23:07
Rufname: Phelan

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

teste es nochmal:

Code:
Sub ZellTextEditieren()
Dim zell As Range, Bereich As Range
Dim arr As Variant, arrOut() As Variant
Dim i As Integer, k As Integer

Application.ScreenUpdating = False

With Tabelle1 'Anpassen  Tabelle und Bereich >> hier Spalte A
    Set Bereich = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With

For Each zell In Bereich
    arr = Split(zell.Text, vbLf)
    For i = 0 To UBound(arr)
        If InStr(arr(i), ":") > 0 Then
            If Trim(Split(arr(i), ":")(1)) <> "" Or i = 0 Then
                ReDim Preserve arrOut(k)
                arrOut(k) = arr(i)
                k = k + 1
            End If
        End If
    Next
    If k <> 0 Then
        zell = Join(arrOut, vbLf)
        Erase arrOut
        k = 0
    End If
Next
Application.ScreenUpdating = True
End Sub

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
08. Aug 2009, 19:30
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

r.mueller und gluecksritter,
ihr seid meine helden Smile

der letzte code hat den fehler rausgeworfen: Object required
Zeile: Set Bereich = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)

der code von r.mueller hat einwandfrei funktioniert.

endlich haben wir eine loesung fuer einen wichtigen schritt!

danke und schoenes wochenende!!!

martin
Gast



Verfasst am:
08. Aug 2009, 19:56
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Eine kleine Frage besteht allerdings noch:

For lngZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If InStr(Cells(lngZeile, 3).Value, vbLf) > 0 Then
vntArr = Split(Cells(lngZeile, 3).Value, vbLf)
strTmp = vntArr(0)
For lngN = LBound(vntArr) + 1 To UBound(vntArr)
If Right(Trim(vntArr(lngN)), 1) <> ":" Then
strTmp = strTmp & vbLf & vntArr(lngN)
End If
Next
Cells(lngZeile, 3) = strTmp
End If
Next

Ist das alles, was ich machen muss, damit das Makro in Spalte C ausgeführt wird?
Ich meine es klappt. Muss aber sicher sein, dass ich nichts vergessen habe.
Danke!
r.mueller
Gast


Verfasst am:
08. Aug 2009, 23:17
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Hallo

Code:

Sub MachDieLeerenWeg()
Dim vntArr As Variant
Dim strTmp As String
Dim lngZeile As Long
Dim lngN As Long
Dim lngSpalte As Long

lngSpalte = 3 ' =C
For lngZeile = 1 To Cells(Rows.Count, lngSpalte).End(xlUp).Row
 If InStr(Cells(lngZeile, lngSpalte).Value, vbLf) > 0 Then
  vntArr = Split(Cells(lngZeile, lngSpalte).Value, vbLf)
  strTmp = vntArr(0)
  For lngN = LBound(vntArr) + 1 To UBound(vntArr)
   If Right(Trim(vntArr(lngN)), 1) <> ":" Then
    strTmp = strTmp & vbLf & vntArr(lngN)
   End If
  Next
  Cells(lngZeile, lngSpalte) = strTmp
 End If
Next
End Sub


Gruß
r.mueller
Phelan XLPH
Fortgeschritten


Verfasst am:
08. Aug 2009, 23:22
Rufname: Phelan

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

@Gast

nu ja keine Ahnung wie du die Fehler produzierst aber wahrscheinlich
hast du die Tabelle nd Spalte nicht angepasst ...

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
09. Aug 2009, 21:41
Rufname:

AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Danke!!!!!
Gast



Verfasst am:
12. Aug 2009, 02:47
Rufname:


AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen - AW: Aus einer Zelle mit Zeilenumbrüchen Zeilen löschen

Nach oben
       Version: Office 2007

Der genannte Code funktioniert einwandfrei.

Sub MachDieLeerenWeg()
Dim vntArr As Variant
Dim strTmp As String
Dim lngZeile As Long
Dim lngN As Long
Dim lngSpalte As Long

lngSpalte = 3 ' =C
For lngZeile = 1 To Cells(Rows.Count, lngSpalte).End(xlUp).Row
If InStr(Cells(lngZeile, lngSpalte).Value, vbLf) > 0 Then
vntArr = Split(Cells(lngZeile, lngSpalte).Value, vbLf)
strTmp = vntArr(0)
For lngN = LBound(vntArr) + 1 To UBound(vntArr)
If Right(Trim(vntArr(lngN)), 1) <> ":" Then
strTmp = strTmp & vbLf & vntArr(lngN)
End If
Next
Cells(lngZeile, lngSpalte) = strTmp
End If
Next
End Sub

Frage: Kann mir jemand dabei helfen, dass er das Makro so lange ausfuehrt, bis er in einer Zeile die Zeichenfolge "***" entdeckt?
Wenn ja: Gehe zur naechsten Zeile.

Als Alternative (ich weiss nicht, ob wir das machen) soll er ebenfalls die "***" aus dem Text loeschen.



Beispiel zu 1.
Anfang Makro:
----
PIN:
TYPE: STEP
INSIDE DIAMETER:
OUTSIDE DIAMETER:
***
Zusatztext der nicht geloescht werden soll....

----
Ende Makro:
----
PIN:
TYPE: STEP
***
Zusatztext der nicht geloescht werden soll....


Beispiel zu 2.
Anfang Makro:
----
PIN:
TYPE: STEP
INSIDE DIAMETER:
OUTSIDE DIAMETER:
***
Zusatztext der nicht geloescht werden soll....

----
Ende Makro:
----
PIN:
TYPE: STEP

Zusatztext der nicht geloescht werden soll....
----

Ich weiss... Gibt man einmal den kleinen Finger Smile

Danke!!!!!
Martin
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: SVERWEIS, Wert aus der nächsten zelle 9 Dave 5483 11. Okt 2004, 13:50
Dave SVERWEIS, Wert aus der nächsten zelle
Keine neuen Beiträge Excel Formeln: Letzten drei Ziffern aus einer Zelle filtern?? 7 Ben 3398 23. Sep 2004, 13:39
Gast Letzten drei Ziffern aus einer Zelle filtern??
Keine neuen Beiträge Excel Formeln: Kann ich Zeilen "einfrieren"? 1 Chrisi 1115 08. Sep 2004, 13:01
fl618 Kann ich Zeilen "einfrieren"?
Keine neuen Beiträge Excel Formeln: Frage... (suchen und löschen) 2 fs-racing 695 01. Sep 2004, 12:13
fs-racing Frage...  (suchen und löschen)
Keine neuen Beiträge Excel Formeln: Autom. Farbänderung einer Zelle. 1 Stefan 66 5197 19. Aug 2004, 14:51
fl618 Autom. Farbänderung einer Zelle.
Keine neuen Beiträge Excel Formeln: Auslesen mehrer Zahlen aus einer Zelle 7 coatin27 3379 11. Aug 2004, 15:18
Arnim Auslesen mehrer Zahlen aus einer Zelle
Keine neuen Beiträge Excel Formeln: Eigabe nur in einer Zelle zulassen 1 pkegelking 1645 11. Aug 2004, 10:42
icke Eigabe nur in einer Zelle zulassen
Keine neuen Beiträge Excel Formeln: Suche Zelle nach einem ähnlichem Wert ab... (wildcart) 2 Ranzi 2538 09. Aug 2004, 18:22
icke Suche Zelle nach einem ähnlichem Wert ab... (wildcart)
Keine neuen Beiträge Excel Formeln: Löschen des Zellinhaltes/von anderer Zelle 2 Gast 1962 07. Aug 2004, 23:32
Gast Löschen des Zellinhaltes/von anderer Zelle
Keine neuen Beiträge Excel Formeln: Einfügen des Datei- oder Tabellennamens in eine Zelle 5 Atomteilchen 5024 29. Jul 2004, 12:43
Atomteilchen Einfügen des Datei- oder Tabellennamens in eine Zelle
Keine neuen Beiträge Excel Formeln: Extrahieren von Text bis zum ersten Semikolon einer Zelle 8 Gast 2949 13. Jul 2004, 18:59
Arnim Extrahieren von Text bis zum ersten Semikolon einer Zelle
Keine neuen Beiträge Excel Formeln: Zeilen mit speziellem Inhalt in neuem Arbeitblatt filtern 3 Bendra 1215 05. Jul 2004, 19:19
fl618 Zeilen mit speziellem Inhalt in neuem Arbeitblatt filtern
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum