Spalten aus Tabelle importieren, anschließend als csv eportieren mit Button und Datei
#1
Hallo zusammen,

ich möchte gerne in eine Lagebestandsdatei (zwei Spalten: ordernumber, instock) die passenden Spalten aus anderen Exceldateien importieren.
Die Komplettlösung wäre ich öffne die Vorlage Datei, drücke auf einen Button, wähle die zu importierende Datei und ordne die Spalten zu (die ändern sich leider manchmal) und erhalte dann eine fertige csv mit den Spalten ordernumber und instock. 

Denke für die Zieldatei braucht Ihr kein Beispiel. Eine zu importierende Date füge ich an. Qte Lot entspricht dabei instock. Reference decli. entspricht ordernumber


Vielen Dank im Voraus für Eure Hilfe.

Gruß
Henrik


Angehängte Dateien
.xlsx   Lagerbestand EPONA 24102016.xlsx (Größe: 85,26 KB / Downloads: 3)
Top
#2
Verwende eine 'Querytable'.
Top
#3
Hallo snb,

danke für die Antwort. Habe das gerade mal überflogen und in Excel 2016 ist der Anfang mit Query ja recht leicht verständlich.

Wie kann ich das ganze denn so speichern, dass man dann in der Excel Datei eine Abfrage startet in deren Verlauf man nach den Quelltabellen und Spalten gefragt wird, so dass das ganze Idiotensicher ist?

Gruß

Henrik
Top
#4
Wenn du ein Querytable erstellt hast zu z.B. Datei "G:\OF\daten.xlsx", kannst du eine Datei mit neue Daten kopiieren, und die Querytable 'refreshen':


Code:
filecopy "C:\neuedaten.xslx", "G:\OF\daten.xlsx"
Thisworkbook.sheets(1).Querytables(1).refresh false
Top
#5
Hallo snb,

Danke für Deine erneut schnelle Antwort. Bitte bedenken, dass ich echt ein Laie bin.
Meinst Du den Code in ein Makro einfügen? Was man auch mit einem Button aufrufen könnte?

Gruß
Henrik
Top
#6
Stimmt: ich meine ein Makro:


Code:
sub M_snb()
  filecopy "C:\neuedaten.xslx", "G:\OF\daten.xlsx"
  Thisworkbook.sheets(1).Querytables(1).refresh false
end sub
Top
#7
Hallo snb,

so ganz verstehe ich das immer noch nicht.
Ich möchte nicht immer die gleiche Tabelle importieren sondern verschiedene. Ich selbst würde das hinkriegen, aber andere Nutzer nicht.
Es soll also wenn ich die Tabelle öffne einen Weg geben, dass der Nutzer die zu importierende Tabelle wählt und dann die Spalten zuordnet.

Ich füge Dir meine bisherige Lösung mal an.

Vielen Dank für Deine Geduld.

Gruß
Henrik


Angehängte Dateien
.xlsm   Query SW Import.xlsm (Größe: 51,13 KB / Downloads: 3)
Top
#8
Hallo Henrik,

ich nehme an, dass snb eine neue Datei "über" die alte kopiert, auf die sich der query bezieht. Du könntest nun also verschiedene Dateien kopieren ...

Im Code ist das recht fest vorgegeben:
filecopy "C:\neuedaten.xslx", "G:\OF\daten.xlsx"

Eine Variante wäre nun, dass der Anwender den Eintrag in eine Zelle vornimmt, z.B. A1 in "Tabelle1", und der Code sich darauf bezieht.
filecopy Sheets("Tabelle1").Range("A1").Value, "G:\OF\daten.xlsx"

Allerdings müsste der Anwender nun Pfad und Dateiname korrekt eintragen.

Du könntest aber auch eine Liste der betreffenden Dateien erstellen und dem Anwender ein Auswahlfeld anbieten (z.B. Dropdown / Datenüberprüfung), das sich auf diese Liste bezieht. Wenn Du das in der gerade genannten Zelle tust, passt der codevorschlag auch gleich dafür.

Ganz flexibel wäre ein Dateiauswahldialog wie beim Datei Öffnen. Allerdings könnte der Anwender dann sonst welche Dateien auswählen, die vielleicht nicht zum Projekt passen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Zitat:ich nehme an, dass snb eine neue Datei "über" die alte kopiert, auf die sich der query bezieht.

Das stimmt: die neue Datei ersetzt die Datei worauf die Querytable basiert ist.
Top


Gehe zu:


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