Thema Datum  Von Nutzer Rating
Antwort
20.04.2018 11:29:37 Dorit
NotSolved
20.04.2018 12:15:50 Gast60147
NotSolved
24.04.2018 08:00:12 Gast46748
NotSolved
24.04.2018 08:00:41 Dorit
NotSolved
Rot 2 Spalten in eine Reihe transponieren nach gleichen Werten in 3. Spalte
24.04.2018 09:54:21 Trägheit
NotSolved
24.04.2018 09:59:55 Gast39793
Solved
27.04.2018 12:10:52 Dorit
Solved

Ansicht des Beitrags:
Von:
Trägheit
Datum:
24.04.2018 09:54:21
Views:
771
Rating: Antwort:
  Ja
Thema:
2 Spalten in eine Reihe transponieren nach gleichen Werten in 3. Spalte

Hi.

Angesichts der Bilder könnte man es so lösen:

Wichtig dabei: Die Daten müssen - wie von dir im Bild gezeigt - nach den ersten beiden Spalten (season, name_uch) gruppiert / sortiert vorliegen.

Du musst ggf. den Tabellennamen im Code ändern.

Option Explicit

Public Sub Test()
  
  Dim rng As Excel.Range
  Dim rngCur As Excel.Range
  Dim rngSrc As Excel.Range
  Dim rngDst As Excel.Range
  Dim lngDstMax As Long
  
  'header row
  Set rng = Worksheets("Tabelle1").Range("A1:D1")
  'first data row
  Set rngCur = rng.Offset(1)
  
  'most right column
  lngDstMax = rngCur.End(xlToRight).Column
  
  Do Until WorksheetFunction.CountBlank(rngCur.Offset(1)) > 0
    
    Set rngSrc = rngCur.Offset(1)
    
    'compare first columns: 'season'
    If rngCur.Cells(1).Value = rngSrc.Cells(1).Value Then
      'compare second columns: 'name_uch'
      If rngCur.Cells(2).Value = rngSrc.Cells(2).Value Then
        'get destination
        Set rngDst = rngCur.End(xlToRight).Offset(, 1)
        If rngDst.Column > lngDstMax Then lngDstMax = rngDst.Column 'remember most right column
        'move shepherd & livestock
        Call rngSrc.Offset(, 2).Resize(, rngSrc.Columns.Count - 2).Cut(rngDst)
        Call rngSrc.EntireRow.Delete
      Else
        Set rngCur = rngCur.Offset(1)
      End If
    Else
      Set rngCur = rngCur.Offset(1)
    End If
    
  Loop
  
  'copy shepherd & livestock header (multiple times)
  Set rngCur = rng.End(xlToRight).Offset(, -1).Resize(, 2)
  Set rngDst = rngCur.Offset(, 2).Resize(, lngDstMax - rngCur.Column)
  Call rngCur.Copy(rngDst)
  
End Sub
  1. Das Makro vergleicht einfach zwei untereinander liegende Zeilen anhand ihrer Werte in den Spalten season und name_uch.
  2. Solange diese gleich sind, fügt er den Datenteil aus Sheperd und Livestock aus der unteren Zeile ans rechte ende der oberen Zeile.
  3. Sobald sie sich unterscheiden, wird dieser Vergleich um eine Zeile tiefer geschoben und das ganze startet wieder bei Punkt 1.

Grüße

Trägheit


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
20.04.2018 11:29:37 Dorit
NotSolved
20.04.2018 12:15:50 Gast60147
NotSolved
24.04.2018 08:00:12 Gast46748
NotSolved
24.04.2018 08:00:41 Dorit
NotSolved
Rot 2 Spalten in eine Reihe transponieren nach gleichen Werten in 3. Spalte
24.04.2018 09:54:21 Trägheit
NotSolved
24.04.2018 09:59:55 Gast39793
Solved
27.04.2018 12:10:52 Dorit
Solved