Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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
Inhaltsverzeichnis

Searching for Macro

Searching for Macro
14.12.2020 20:18:35
Bernhard
Liebe Community,
ich bin auf der Suche nach einem Makro, das aus der Tabelle im Blatt "Input" eine Tabelle kreiert, die im Tabellenblatt "Output" ersichtlich ist: https://www.herber.de/bbs/user/142314.xlsm
Erklärung in Worten: Die Spalte 1 (Input) wird in der Spalte A (Output) 1x ausgegeben.
In den darauffolgenden Spalten des Outputs soll zuerst der Wert aus Spalte B (Input) und dann dessen Wert aus Spalte C (Input) stehen. Sollte der Wert in Spalte 1 (Input) mehrfach vorkommen, wird die Spalte B+C immer in der selben Zeile im Outputfile dargestellt.
Bitte mittels Schleife dafür sorgen, dass die Tabelle (Input) beliebig viele Zeilen haben kann.
Vielen Dank!
Bernhard

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Searching for Macro
14.12.2020 21:06:25
Yal
Hallo Bernhard,
was Du da nachbaust, nennt man Pivottabelle. Es wäre nicht ganz genau was Du dir wünscht, dafür leichter und stabiler
Dein Wunsch:
Sub Pitvotiere()
Dim Z
Dim wIN As Worksheet
Dim wOU As Worksheet
Dim Letzte As Range
Set wIN = Worksheets("Input")
Set wOU = Worksheets("Output")
For Each Z In wIN.Range(wIN.Range("A2"), wIN.Range("A10000").End(xlUp)).Cells
Set Letzte = wOU.Range("A1000").End(xlUp)
If Z = Letzte Then
Letzte.End(xlToRight).Offset(0, 1) = Z.Offset(0, 1)
Letzte.End(xlToRight).Offset(0, 1) = Z.Offset(0, 2)
Else
Letzte.Offset(1, 0) = Z
Letzte.Offset(1, 1) = Z.Offset(0, 1)
Letzte.Offset(1, 2) = Z.Offset(0, 2)
End If
Next
End Sub

(Befüllt erst ab zweite Zeile)
VG
Yal
Anzeige
nee, Pivot sieht anders aus
14.12.2020 21:50:25
Daniel
dann müsste jeder Werte aus Spalte 2 in jeder Ergebniszeile in der selben Spalten angeordnet sein wie in den anderen Zeilen.
die Anordnung kann man aber auch ohne Makro recht einfach erzeugen:
0. Liste falls nicht schon gegeben nach Spalte A sortieren
1. in Spalte D folgende Formel einfügen und bis zum Ende runterkopieren (Formel für D2)
=$B2&";"&$C2&WENN($A2=$A3;";"&D3;"")

2. Spalte D kopieren und als Wert einfügen
3. DATEN - DATENTOOLS - TEXT IN SPALTEN auf die Spalte D anwenden, mit dem Semikolon als Trennzeichen
4. Spalte B und C löschen
5. DATEN - DATENTOOLS -DUPLIAKTE ENTFERNEN auf die Tabelle anwenden, mit der Spalte A als Kriteirum
wie gesagt, von Hand ganz einfach machbar und auch als Makro mit Hilfe des Recorders schnell erstellt.
ebenso sollte die Ausführung wesentlich schneller sein als die Werte einzeln per Schleife umzuschaufeln.
hier der Code dazu (ohne das sortieren)
Sub mit_Formeln()
With Range("A1").CurrentRegion
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=RC2&"";""&RC3&IF(RC1=R[1]C1,"";""&R[1]C,"""")"
.Formula = .Value
.EntireRow.RemoveDuplicates 1, xlNo
.TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False
.Offset(0, -2).Resize(, 2).Delete shift:=xlToLeft
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Searching for Macro
15.12.2020 20:07:07
Bernhard
Danke an euch beide. Beide Möglichkeiten helfen mir!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige