Hallo zusammen, ich suche eine Formel zum übertragen von Daten?

...komplette Frage anzeigen

2 Antworten

Ohne VBA würde ich einen Filter auf die Haupttabelle legen und diese duplizieren. Ganz kommt man so um die Arbeit nicht herum, denn man muss zweihundert Mal den Filter pro Markt anwenden.

Mit VBA wäre es einfacher. Dabei gelte es zu beachten, dass der Aufwand, bis das Programm funktioniert zwar geringer als die manuelle Variante ist, aber lange nicht 0. Zum Anderen ist das Programm wahrscheinlich für die Zukunft unbrauchbar, wenn es einmal erfolgreich durchgelaufen ist.

Antwort bewerten Vielen Dank für Deine Bewertung

Den Hinweis von Suboptimierer kann ich nur unterstreichen, wobei das Anlegen der Tabellenblätter nach einer einmaligen Sache klingt. Wenn auch die Kunden dauerhaft aus dem zentralen Datenblatt auf die einzelnen Tabellenblätter verteilt werden sollen, würde ich ein anderes Verfahren überlegen. Folgendes für eine Einmal-Aktion:

Wenn Du eine Liste erzeugst für alle Märkte (unter Daten -> Duplikate entfernen), kannst Du per Makro die Tabellenblätter anlegen.

Meine Annahme: Es gibt ein Tabellenblatt1 auf dem von A1 bis A200 die um Duplikate bereinigte Liste der Märkte steht. das i=1 to 200 ggf. anpassen, wenn es mehr oder weniger als 200 sind.

Sub marktblattanlegen()
'i=1 - 200 => Zeile 1 bis 200, ggf. anpassen
For i = 1 To 200
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = Tabelle1.Cells(i, 1).Value 'die 1 steht für Spalte A
Next
End Sub

Danach kann man die Kundeneinträge übernehmen:

Sub eintraege_kopieren()
Dim i, j, k As Long
For i = 2 To Sheets.Count 'wenn die Kunden in Zeile 2 beginnen
k = 1 'wenn in der ersten Zeile begonnen werden soll, die Einträge einzufügen
For j = 2 To 20000 'Namen ab Zeile 2 bis 20000, ggf. anpassen
If Tabelle1.Cells(j, 1).Value = Sheets(i).Name Then
Sheets(i).Cells(k, 1).Value = Tabelle1.Cells(j, 2).Value
k = k + 1
End If
Next j
Next i
End Sub

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?