Anzeige
Archiv - Navigation
1688to1692
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
Daten aus externer Datei importieren
29.04.2019 17:00:28
Nico
Hallo,
ich hätte da eine Problem, bei dem ich in den Weiten des Internets noch nicht die richtige Lösung gefunden habe.
Ausgangssituation: Ich schreibe jeden Morgen an 5 unterschiedliche Spediteure separate Anmeldungen. Diese werden in separaten Ordnern gespeichert.
Nun möchte ich gerne ein Dashboard erstellen, was die unterschiedlichen Daten der Anmeldungen eines ausgewählten Tag hoch lädt. wenn die Daten in diese Masterdatei hochgeladen sind, kann ich diese Daten entsprechend verarbeiten und aufbereiten.
ich habe leider ein Problem mit dem Importieren der Daten, durch das variable Datum.
der optimale Prozess sollte wie folgt aussehen:
1. Auswahl eines Datums (Feld ist bereits vorgegeben)
2. Button auswählen, der Makro startet
3. Daten werden aus jedem der 5 Anmelde-Dateien in die Masterdatei importiert in das jeweilige Sheet des Carriers (sind ebenfalls angelegt)
4. Bildschirmupdate = false
Folgenden Code habe ich gefunden und versucht entsprechen anzupassen. allerdings scheitere ich schon daran, die richtige Datei anzusprechen.
Dazu habe ich ein "Set up" Sheet angelegt, in dem die Pfade und Dateinamen anhand des ausgewählten Datums angezeigt werden. Die Zellen, in dem der LInk angezeigt wird, wollte ich entsprechen im Code nutzen.
So zum Beispiel:
Europa
Pfad W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\04 Europa
Datei PREADVISE_Europa_2019-04-29
Link W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\04 Europa\PREADVISE_Europa_2019-04-29.xlsm
Wie gesagt, ändert sich der Datei-Name mit der Auswahl des Datums.
Wie muss der Code entsprechend aussehen, dass er 5x eine unterschiedliche Range ansteuert und in 5 unterschiedliche Sheets importiert?
Folgenden Code habe ich als Basis gefunden (nicht selbst geschrieben, diese Lorbeeren würde ich mir nie einheimsen)
Public Sub Ein_Blatt_kopieren()
Dim WkBk_Quelle  As Workbook   ' das Herkunfts-Workbook - die Quelle
Dim WSh_Quelle   As Worksheet  ' das Herkunfts-Tabellenblatt
Dim rBlock_Q     As Range      ' der zu kopierende Block
Dim WkBk_Ziel    As Workbook   ' das Empfangs-Workbook - das Ziel
Dim WSh_Ziel     As Worksheet  ' das Empfangs-Tabellenblatt
Dim lZeile_Z     As Long       ' die jeweilige Start-Zeile im Ziel-Blatt
Set WkBk_Ziel = ActiveWorkbook  ' diese Datei ist das Ziel !!!
Set WSh_Ziel = WkBk_Ziel.Worksheets("Avis Dachser GRP") ' das Tabellenblatt ggf. anpassen !!! _
_
_
lZeile_Z = 1                    ' die erste zu beschreibende Zeile
Application.ScreenUpdating = False ' den Bildschirm-Update unterdrücken
Set WkBk_Quelle = Workbooks.Open(Filename:= _
"C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\" & _
"Arbeitsdaten.xls", ReadOnly:=True) ' die Herkunfts-Datei - die Quelle - öffnen
Set WSh_Quelle = WkBk_Quelle.Worksheets("Advise") ' das Tabellenblatt benennen
With WSh_Quelle   ' mit dem jeweiligen Tabellenblatt arbeiten
Set rBlock_Q = .Range(.Cells(1, 1), .Cells.SpecialCells(xlLastCell))
rBlock_Q.Copy
WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlFormats
WSh_Ziel.Cells(lZeile_Z, 1).PasteSpecial Paste:=xlValues
lZeile_Z = lZeile_Z + rBlock_Q.Rows.Count
End With
Application.CutCopyMode = False
WkBk_Quelle.Close savechanges:=False
Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub
Wenn Ihr mir hier helfen könnten wäre das spitze und ich komme meinem Ziel einen erheblichen Schritt näher.
Danke für Eure Zeit im Voraus
Gruß
Nico

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus externer Datei importieren
29.04.2019 18:44:22
cysu11
Hi Nico,
lade bitte deine Dashboard-Datei hoch, dann haben die Helfer hier es leichter Dir zu helfen!
LG
Alexandra
AW: Daten aus externer Datei importieren
30.04.2019 14:16:31
Nico
Hallo Alexandra,
das ist natürlich richtig, allerdings ist das sheet Dashboard noch ohne Auswertungen und nicht final.
Danke + Gruß
Nico
AW: Daten aus externer Datei importieren
30.04.2019 14:32:21
cysu11
Hi Nico,
dann würde ich an deiner Stelle eine Beispieldatei bauen, so wie du Dir das vorstellt mit händisch eingetragenen Wunschergebnisse und Kommentare und Buttons etc. dazu. Du siehst ja, bis jetzt hat sich noch kein Helfer begeistert für dein Code alleine! :)
LG
Alexandra
AW: Daten aus externer Datei importieren
30.04.2019 16:51:21
Nico
Danke Alexandra.
ich habe meine Datei einmal angepasst so wie ich mir das vortellen würde. die roten TextBoxen sind meine Kommentare.
ich habe einen Date-Picker eingefügt, der allerdings bei jedem öffnen an die oberste linke Stelle zurück springt. Gibt's dazu auch eine Einstellung die ich übersehen habe? Wenn ich die Box entsprechend markiere und schiebe und den Entwicklermodus verlasse, ist alles wieder in Ordnung. Sobald ich die Datei erneute öffne habe ich allerdings das gleiche Problem wieder... Hat da auch jemand eine Idee?
Danke
Nico
Anzeige
AW: Daten aus externer Datei importieren
30.04.2019 17:04:31
cysu11
Hi Nico,
ja, wo ist den die Datei? :)
LG
Alexandra
AW: Daten aus externer Datei importieren
02.05.2019 15:39:10
Nico
Der Kommentar "Wer lesen kann ist klar im Vorteil.." bezieht sich natürlich auf mich. merke gerade, dass dies falsch rüber kommen könnte.
Gruß
Nico
AW: Daten aus externer Datei importieren
03.05.2019 00:30:50
cysu11
Hi Nico,
keine Panik, ist nicht falsch rübergekommen! :)
Teste mal!
https://www.herber.de/bbs/user/129540.xlsm
LG
Alexandra
Anzeige
AW: Daten aus externer Datei importieren
03.05.2019 12:41:01
Nico
Hallo Alexandra,
das ist echt top und dass so schnell ;-) ich bin entzückt!
Die Fehlermeldungen die anfielen konnte ich selber ausbügeln, ging dabei nur um die korrekte Schreibweise der Speicherorte, wo sich die quellen befanden. Ich musste auch Datum1 hinzufügen, da die Schreibweise bei einer Datei anders ist. Die Kollegen, die diese Avise schreiben wollen sich nicht anpassen, aber war ein einfaches das in deinem Code anzupassen:
datum = Format(Sheets("Dashboard").Range("M4").Value, "YYYY-MM-DD")
datum1 = Format(Sheets("Dashboard").Range("M4").Value, "DD.MM.YYYY")
Nachdem du mir nun einen so leckeren "Kakao" serviert hast, muss ich noch einmal nach dem Sahnehäubchen fragen ;-)
Falls eine Datei nicht vorhanden ist, was durchaus vorkommen kann, möchte ich gerne dass das Makro nicht abgebrochen wird, sondern weiterläuft und wenigstens die restlichen Avise importiert. Ich habe das mal mit "On Error Resume Next" versucht, aber dann schließt sich die ganze Datei - also mache ich wieder mehr kaputt als ich beitragen kann.
Vielleicht wäre eine Message-Box hilfreich, wo steht "Avis XY nicht vorhanden; weiter" damit man weiß, dass hier keine Daten später analysiert werden.
Danke Dir
Nico
Anzeige
AW: Daten aus externer Datei importieren
03.05.2019 14:14:09
cysu11
Hi Nico,
dann würde ich das so machen:
'Datei1 Pfad "W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\01 Dachser  _
Groupage\"
If Dir("W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\01 Dachser Groupage\ _
PREADVISE_DACS_" & datum & ".xlsm")  "" Then
datei1 = "W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\01 Dachser Groupage\ _
PREADVISE_DACS_" & datum & ".xlsm"
Workbooks.Open datei1, UpdateLinks:=False
ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
With ActiveWorkbook.Worksheets("Advise")
.Cells.Select
.Cells.Copy
.Cells.PasteSpecial xlPasteValues
.Cells.Copy ThisWorkbook.Sheets("Avis Dachser GRP").Cells(1, 1)
ActiveWorkbook.Close savechanges:=False
End With
Else
datei1 = "W:\Germany\CDC\Transport Planning\01 Outbound Scheduling\04 Avise\01 Dachser  _
Groupage\PREADVISE_DACS_" & datum & ".xlsm"
MsgBox datei1 & "  wurde nicht gefunden! Bitte pr?fen!"
End If
Musst halt für die anderen 4 Dateien entsprechend ergänzen/anpassen! Kann sein, dass ich die Dateinamen wieder nicht 100% korrekt geschrieben habe! :)
LG
Alexandra
Anzeige
AW: Daten aus externer Datei importieren
03.05.2019 16:44:13
Nico
Hallo Alexandra,
vielen lieben Dank. nachdem ich einen selbstverursachten Laufzeitfehler behoben habe, funktioniert der Code genauso wie ich mir das vorgestellt habe.
Kleine Frage noch: Wenn ich das richtig sehe, löschst du den Inhalt der einzelnen Sheets mit
For Each ws In Worksheets(Array("Avis Dachser GRP", "Avis Dachser direct", "Avis Europa", "Avis No Limit", "Avis DPD L"))
ws.Cells.Clear
In den Avisen sind ebenfalls Firmenlogo als Grafik und Buttons enthalten, die er so mitkopiert. Wenn ich nun mehrmals Daten auswähle, löscht der Code diese Grafiken nicht. ICh habe nun ca. 20x das Firmenlogo und Buttons drin. Kann man die noch mitlöschen?
Gruß
Nico
Anzeige
AW: Daten aus externer Datei importieren
03.05.2019 18:50:57
cysu11
Hi Nico,
ersetze den Codeteil mit:
Dim shp As Shape
For Each ws In Worksheets(Array("Avis Dachser GRP", "Avis Dachser direct", "Avis Europa", "Avis  _
No Limit", "Avis DPD L"))
ws.Cells.Clear
ws.Shapes.SelectAll
Selection.Delete
Next ws
LG
Alexandra

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige