Thema Datum  Von Nutzer Rating
Antwort
12.01.2013 11:42:33 Lars
NotSolved
12.01.2013 11:43:56 Lars
NotSolved
12.01.2013 16:54:21 Gast81212
NotSolved
12.01.2013 17:35:07 Lars
NotSolved
Rot Zeilenumbruch in Zeile mit automatischen Kopieren von Nachbarzellen
12.01.2013 20:12:22 Gast72405
*****
Solved
13.01.2013 13:21:45 Lars
NotSolved
13.01.2013 20:51:50 Gast91499
NotSolved
14.01.2013 07:10:31 Lars
NotSolved
16.01.2013 12:59:46 Lars
NotSolved

Ansicht des Beitrags:
Von:
Gast72405
Datum:
12.01.2013 20:12:22
Views:
1043
Rating: Antwort:
 Nein
Thema:
Zeilenumbruch in Zeile mit automatischen Kopieren von Nachbarzellen

Ok, das könnte es vermutlich schon sein:

Option Explicit

Sub ZeilenAufsplitten()
  
  Dim wksQuelle As Excel.Worksheet
  Dim wksZiel As Excel.Worksheet
  Dim rngQuelle As Excel.Range
  Dim d As Variant, z As Variant
  Dim r As Long, c As Long
  Dim i As Long, j As Long
  Dim strT As String
  Dim zmax As Long
  
  Set wksQuelle = Tabelle1 'von hier werden die Daten genommen
  Set wksZiel = Tabelle2 'hier landen die Daten
  
  wksZiel.UsedRange.Clear 'Zielort leeren
  
  Set rngQuelle = wksQuelle.UsedRange
  
  'in diesem Datenfeld wird sich die maximal vorkommende
  'Zeilenanzahl (in die aufzusplitten ist) gemerkt
  ReDim z(1 To 2, 1 To rngQuelle.Columns.Count)
  
  j = 1 'Zeilenindex im Zielort (dort wird angefangen zu schreiben)
  
  'Zeilenweise durch die Datenquelle arbeiten...
  For r = 1 To rngQuelle.Rows.Count
    
    'Um aktuelle Zeile aufsplitten zu können, bringen wir u.a.
    'die maximal notwendige Zeilenanzahl in Erfahrung
    zmax = 0
    For c = 1 To rngQuelle.Columns.Count
      z(2, c) = Split(rngQuelle.Cells(r, c).Text, vbLf) 'Zeichenkette -> Array
      z(1, c) = UBound(z(2, c)) + 1 'Zeilenanzahl
      If z(1, c) > zmax Then zmax = z(1, c) 'max. Zeilenanzahl
    Next
    
    'jetzt schreiben wir die Daten - aufgesplittet - an ihren Zielort
    For c = 1 To rngQuelle.Columns.Count
      For i = 0 To z(1, c) - 1
        With wksZiel.Cells(j + i, c)
          If IsNumeric(Trim(z(2, c)(i))) Then
            .Value = "'" & Trim$(z(2, c)(i))
          Else
            .Value = Trim$(z(2, c)(i))
          End If
        End With
      Next
    Next
    
    j = j + zmax 'für den nächsten Durchlauf den Zeilenindex hochzählen
    
  Next
  
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
12.01.2013 11:42:33 Lars
NotSolved
12.01.2013 11:43:56 Lars
NotSolved
12.01.2013 16:54:21 Gast81212
NotSolved
12.01.2013 17:35:07 Lars
NotSolved
Rot Zeilenumbruch in Zeile mit automatischen Kopieren von Nachbarzellen
12.01.2013 20:12:22 Gast72405
*****
Solved
13.01.2013 13:21:45 Lars
NotSolved
13.01.2013 20:51:50 Gast91499
NotSolved
14.01.2013 07:10:31 Lars
NotSolved
16.01.2013 12:59:46 Lars
NotSolved