Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten abgleichen - jeder Wert eine Zeile

Spalten abgleichen - jeder Wert eine Zeile
14.03.2008 10:23:59
Mario
Hallo liebe Excel/VBA-Freunde,
ich habe mich jetzt durch die Archive gesucht, aber zu meinem Problem keine Lösung gefunden.
Ich möchte gerne die Spalten A,B mit den Werten aus D,E vergleichen. Das soll dann wie folgt aussehen:
Ausgangstabelle:
A................B..............C..........D....................E
Auftrag 1.....500..... ...............Auftrag 4........700
Auftrag 5.....200.....................Auftrag 7........150
Auftrag 9.......70.....................Auftrag 8........900
Auftrag 10.....90.....................Auftrag 9........700
..............................................Auftrag 11.....222
Anschließend soll jeder Auftrag für sich eine Zeile haben, gleiche Aufträge sollen in einer Zeile stehen
(z.B. Auftrag9).
Ergebnis:
A................B..............C..........D....................E
Auftrag 1.....500
..............................................Auftrag 4........700
Auftrag 5 200
..............................................Auftrag 7........150
..............................................Auftrag 8........900
Auftrag 9.....70.......................Auftrag 9........700
Auftrag 10...90
..............................................Auftrag 11......222
Verglichen werden sollen die Spalten bei einer Größenordnung von ca. 200 Werten.
Mal ist Spalte AB mit mehr Werten gefüllt, mal die Spalten D,E.
Wer kann mir bei diesem Problem helfen? Oder hat ein Idee, wie ich das mit VBA machen kann?
Viele Grüße
Mario

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten abgleichen - jeder Wert eine Zeile
14.03.2008 14:32:53
Peter
Hallo Mario,
so könnte es gehen.
Annahme (ggf. anpassen) Eingabe-Tabelle ist Tabelle1, Ausgabe-Tabelle ist Tabelle2
es gibt KEINE Überschriften, die Daten beginnen in Zeile 1 Tabelle1


Option Explicit
Public Sub Abgleich()
Dim WkSh_Q     As Worksheet  ' das Quell-Tabellenblatt - die Herkunft der Daten
Dim WkSh_Z     As Worksheet  ' das  Ziel-Tabellenblatt - die Ausgabe-Tabelle
Dim iSpalte    As Integer    ' For/Next Spalten-Index - Quelle
Dim lLetzte    As Long       ' die letzte belegte Zeile in Spalte A - D - Quelle
Dim lZeile_QL  As Long       ' der Zeilen-Index für Spalte A - B - Quelle
Dim lZeile_QR  As Long       ' der Zeilen-Index für Spalte C - D - Quelle
Dim lZeile_Z   As Long       ' der Zelen-Index im Ziel-Tabellenblatt
   Application.ScreenUpdating = False
   Set WkSh_Q = Worksheets("Tabelle1") ' <== den Tabellenblattnamen ggf. anpassen !!!
   Set WkSh_Z = Worksheets("Tabelle2") ' <== den Tabellenblattnamen ggf. anpassen !!!
   For iSpalte = 1 To 4
      If WkSh_Q.Cells(Rows.Count, iSpalte).End(xlUp).Row > lLetzte Then
         lLetzte = WkSh_Q.Cells(Rows.Count, iSpalte).End(xlUp).Row
      End If
   Next iSpalte
   lZeile_QL = 1
   lZeile_QR = 1
   Do
      lZeile_Z = lZeile_Z + 1
      If WkSh_Q.Range("A" & lZeile_QL).Value = "" And _
         WkSh_Q.Range("C" & lZeile_QR).Value <> "" Then
         WkSh_Z.Range("C" & lZeile_Z & ":D" & lZeile_Z).Value = _
         WkSh_Q.Range("C" & lZeile_QR & ":D" & lZeile_QR).Value
         lZeile_QR = lZeile_QR + 1
      ElseIf WkSh_Q.Range("C" & lZeile_QR).Value = "" And _
         WkSh_Q.Range("A" & lZeile_QL).Value <> "" Then
         WkSh_Z.Range("A" & lZeile_Z & ":B" & lZeile_Z).Value = _
         WkSh_Q.Range("A" & lZeile_QL & ":B" & lZeile_QL).Value
         lZeile_QL = lZeile_QL + 1
      ElseIf WkSh_Q.Range("A" & lZeile_QL).Value = WkSh_Q.Range("C" & lZeile_QR).Value Then
         WkSh_Z.Range("A" & lZeile_Z & ":B" & lZeile_Z).Value = _
         WkSh_Q.Range("A" & lZeile_QL & ":B" & lZeile_QL).Value
         WkSh_Z.Range("C" & lZeile_Z & ":D" & lZeile_Z).Value = _
         WkSh_Q.Range("C" & lZeile_QR & ":D" & lZeile_QR).Value
         lZeile_QL = lZeile_QL + 1
         lZeile_QR = lZeile_QR + 1
      ElseIf WkSh_Q.Range("A" & lZeile_QL).Value < WkSh_Q.Range("C" & lZeile_QR).Value Then
         WkSh_Z.Range("A" & lZeile_Z & ":B" & lZeile_Z).Value = _
         WkSh_Q.Range("A" & lZeile_QL & ":B" & lZeile_QL).Value
         lZeile_QL = lZeile_QL + 1
      ElseIf WkSh_Q.Range("C" & lZeile_QR).Value < WkSh_Q.Range("A" & lZeile_QL).Value Then
         WkSh_Z.Range("C" & lZeile_Z & ":D" & lZeile_Z).Value = _
         WkSh_Q.Range("C" & lZeile_QR & ":D" & lZeile_QR).Value
         lZeile_QR = lZeile_QR + 1
      End If
   Loop Until WkSh_Q.Range("A" & lZeile_QL).Value = "" And _
              WkSh_Q.Range("C" & lZeile_QR).Value = "" And _
              lZeile_QL >= lLetzte And lZeile_QR >= lLetzte
   Application.ScreenUpdating = True
End Sub


Gruß Peter

Anzeige
AW: Spalten abgleichen - jeder Wert eine Zeile
14.03.2008 14:36:02
Mario
Hallo Peter,
herzlichen Dank
Viele Grüße
Mario

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige