Thema Datum  Von Nutzer Rating
Antwort
07.09.2016 13:35:45 JimmyKnoeppkes
NotSolved
07.09.2016 13:36:54 Gast53690
NotSolved
07.09.2016 13:42:27 JimmyKnoeppkes
NotSolved
07.09.2016 15:07:43 Gast93107
NotSolved
Rot Daten aus einer Zelle durch ";" getrennt in neue Zeilen darunter einfügen
07.09.2016 15:08:59 Gast45013
*****
Solved
07.09.2016 16:37:54 JimmyKnoeppkes
Solved

Ansicht des Beitrags:
Von:
Gast45013
Datum:
07.09.2016 15:08:59
Views:
463
Rating: Antwort:
 Nein
Thema:
Daten aus einer Zelle durch ";" getrennt in neue Zeilen darunter einfügen

Hi Jimmy,

getestet an deinen Daten, jedoch ohne Fehlersteuerung, daher mach eine Sicherung

LG

Option Explicit

Sub DoIt()
Dim WsAct As Worksheet              'kenne Tabellennamen nicht, daher aktuelle
Dim WsTmp As Worksheet              'temporäre Tabelle zuZum
Dim rngUsed As Range                'benutzter Bereich
Dim rngRow As Range                 'Zeile darin
Dim arrDt2() As String              'Teiler
Dim x As Integer                    'Zähler

Application.ScreenUpdating = False

   Set WsAct = ActiveSheet
   Set WsTmp = Sheets.Add(After:=Sheets(WsAct.Index))
   'Datenbereich aktuell
   Set rngUsed = WsAct.UsedRange
   'die Überschrift nach Tmp
   rngUsed.Rows(1).Copy WsTmp.Cells(1)
   'der Rest
   Set rngUsed = rngUsed.Offset(1).Resize(rngUsed.Rows.Count - 1)
   'zeilenweise
   For Each rngRow In rngUsed.Rows
      'Variante leere oder kein Trenner
      If IsEmpty(rngRow.Cells(4)) Or InStr(rngRow.Cells(4), ";") = 0 Then
         rngRow.Copy WsTmp.Cells(WsTmp.Rows.Count, 1).End(xlUp).Offset(1)
      Else
      'getrennte Daten
         arrDt2 = Split(rngRow.Cells(4), ";")
         For x = LBound(arrDt2) To UBound(arrDt2)
            rngRow.Copy WsTmp.Cells(WsTmp.Rows.Count, 1).End(xlUp).Offset(1)
            WsTmp.Cells(WsTmp.Rows.Count, 1).End(xlUp).Offset(, 3) = arrDt2(x)
         Next x
      End If
   Next rngRow
   'es werden ja mehr Zeilen daher
   'zurück kopieren
   WsTmp.UsedRange.Copy WsAct.Cells(1)
   'Tmp weg
   Application.DisplayAlerts = False
   WsTmp.Delete
   WsAct.Activate
   Application.DisplayAlerts = True
   Set WsAct = Nothing
   Set WsTmp = Nothing
  
Application.ScreenUpdating = True
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.09.2016 13:35:45 JimmyKnoeppkes
NotSolved
07.09.2016 13:36:54 Gast53690
NotSolved
07.09.2016 13:42:27 JimmyKnoeppkes
NotSolved
07.09.2016 15:07:43 Gast93107
NotSolved
Rot Daten aus einer Zelle durch ";" getrennt in neue Zeilen darunter einfügen
07.09.2016 15:08:59 Gast45013
*****
Solved
07.09.2016 16:37:54 JimmyKnoeppkes
Solved