Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Verschieben auf weitere Tabellenblätter auf Spaltenbasis
#1
Hallo zusammen,

ich hatte im Vorfeld die Suche bemüht, jedoch leider nichts gefunden - was nichts bedeuten muss. Wenn also jemand einen Verweis hat: Weist mich gerne darauf hin.

Worum geht es?
Mit unseren Lieferanten soll ein Stammdatenabgleich gemacht werden. Das soll über eine Excel-Tabelle erfolgen, damit mögliche Änderungswünsche direkt eingetragen werden können.
Die Stammdaten liegen mir in einer vergleichbaren Form wie in beigefügter Liste vor.

Da die Liste im Original etwas umfangreicher ist, bin ich auf der Suche nach einer automatisierten Lösung. Die Idee ist nun, auf Grundlage der Spalte A (Lieferantennummer) die Artikel, die zu einem Lieferanten gehören, auf jeweils ein separates Tabellenblatt zu bringen, da ich eine VBA-Lösung gefunden habe, mit dem die Tabellenblätter als einzelne Dateien exportiert werden können.
Wie bekomme ich das hin?
Danke für Eure Unterstützung - gerne auch mit Gedankenanstößen für eine völlig andere Lösung,

Connor

P.S.: Ich habe dieses Thema auch noch in einem anderen Forum platziert.


Angehängte Dateien
.xlsx   Beispieltabelle.xlsx (Größe: 11,08 KB / Downloads: 3)
to top
#2
Hallo Conner,

das Thema könnte man mit einer Makroaufzeichnung beginnen. Ich habe das hier mal getan - für die Lieferanten 111 ud 85.

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   Range("A1").Select
   Selection.AutoFilter
   ActiveSheet.Range("$A$1:$F$16").AutoFilter Field:=1, Criteria1:="111"
   Range("A1:F30").Select
   Selection.Copy
   Sheets("111").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Sheets("Gesamt").Select
   ActiveSheet.Range("$A$1:$F$16").AutoFilter Field:=1, Criteria1:="85"
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("85").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
End Sub

Damit man jetzt nicht für jeden Lieferanten den code aufzeichnet, packen wir das Ganze in eine Schleife und optimieren den code etwas:


Code:
Sub Makro1()
'Variablendeklarationen
Dim arrLieferanten, iCnt%
'Array bilden
arrLieferanten = Array("111", "85")
'Blatt Gesamt auswaehlen
Sheets("Gesamt").Select
'Autofilter setzen
Range("A1").AutoFilter
'Schleife ueber alle Arrayelemente
For iCnt = 0 To UBound(arrLieferanten)
 'Kriterium fuer Autofilter setzen
 ActiveSheet.Range("$A$1:$F$16").AutoFilter Field:=1, Criteria1:=arrLieferanten(iCnt)
 'gefilterten Bereich + ein paar Zeilen mehr kopieren
 Range("A1:F30").Copy
 'Werte auf Zielblatt einfuegen
 Sheets(arrLieferanten(iCnt)).Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
     :=False, Transpose:=False
Next
'Kopiermarkierung ausschalten
Application.CutCopyMode = False
'Autofilter zuruecksetzen
Range("A1").AutoFilter
End Sub

Die nächsten Optimierungen könnten sein:
- Aufbau des Array alle Lieferanten per code
- Anlegen der Lieferantenblätter, sofern nciht vorhanden
- ggf. Löschen der Daten auf vorhandenen Lieferantenblättern
- zweiter Kopierstep zur Übertragung der Formate
Hinweis: Wenn alles kopiert werden kann (Daten, Foormate, Formeln usw), reicht einfaches kopieren und einfügen.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#3
Hallo Schauan,

danke für Deinen Vorschlag. Ich hatte, wie beschrieben, noch in einem anderen Forum um Hilfe gebeten.
Dort hat man mir eine - wie ich finde - sehr schöne Lösung angeboten. Für diese habe ich mich entschieden, da hier "einfach" nur der VBA-Code eingefügt werden musste.
Ich hatte geplant, das Makro hier zu veröffentlichen, aber leider habe ich keine Rückmeldung vom Ersteller bekommen.
Deshalb hier einfach "nur" der Link.

Nochmals Danke für Deine Mühen,
Gruß,

Connor
to top
#4
Hallöchen,
Schön zu wissen... Ich versuche ganz gerne, die Lösung mit dem Fragesteller zusammen zu erarbeiten.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Daten aus CSV Import aufbereiten für weitere Nutzung Fuchur112 4 122 19.11.2016, 20:46
Letzter Beitrag: Gast 123
  Verschieben von Zellinhalten future83 2 53 13.11.2016, 22:33
Letzter Beitrag: future83
  Summenprodukt mit Bereich.verschieben exceltalent 3 70 03.11.2016, 17:06
Letzter Beitrag: Jockel
  Funktion "Bereich verschieben" für Saisonalisierung? RoenneB 26 469 13.10.2016, 10:16
Letzter Beitrag: RoenneB
  Werte verschieben cantus 11 455 13.08.2016, 19:01
Letzter Beitrag: schauan
  Inhalte nach oben verschieben kraehenseele 8 441 19.07.2016, 21:30
Letzter Beitrag: kraehenseele
  Bereich.Verschieben B4sti 18 957 10.06.2016, 11:25
Letzter Beitrag: B4sti
  Bereich Verschieben Funktion- Fehleranalyse Merte90 6 283 10.05.2016, 13:38
Letzter Beitrag: BoskoBiati
Question Werte aus der Webabfrage verschieben sich WergibtmirRat 11 402 01.05.2016, 09:13
Letzter Beitrag: WergibtmirRat
  Identische Werte zählen und weitere Menge addieren Hossi 9 551 29.03.2016, 15:22
Letzter Beitrag: WillWissen

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste