Registriert seit: 07.11.2014
Version(en): 2007
Hallo,
ich lese mit einem Makro mehrere Excel-Dateien nacheinander ein.
Abfolge ist:
Wähle Datei 1 aus
Windwos-Dateiauswahl-Dialog macht sich auf
relevanten Ordner gebe ich vor, man kann die Datei auswählen
Makro liest die Datei ein
Dann geht es zur 2. Datei, da dann der gleiche Ablauf.
Das geht über 5 Dateien so hin.
Grundsätzlich kann es sein dass die Datei 2 noch nicht existiert --> bei dem Windwos-Dateiauswahl-Dialog drücken die Kollegen dann auf Abbrechen
Hier kommt dann das Fenster zum Debuggen
Ich würde gerne aber an der Stelle im Code weitergehen - Ablauf soll dann so sein.
Meldung Datei 1 einlesen
Anwender stellt fest dass Datei nicht vorhanden, drückt auf Abbrechen
--> HIER soll jetzt die Meldung kommen dass Datei 2 ausgewählt werden soll
Ich hoffe mal ich habe klar genug ausgedrückt was ich gerne hätte und wäre über Tipps sehr dankbar
Daniel
Registriert seit: 13.04.2014
Version(en): 365, 2019
Hallo,
stelle doch mal Deinen Code vor, damit man sehen kann, wo man das schon vorher vermeiden kann. Wenn man eine Datei aussuchen kann, die nicht da ist, an ist das schon schlecht programmiert!!!!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 07.11.2014
Version(en): 2007
Hallo,
ich glaube nicht dass es schlecht programmiert ist - ich brauche ein Eingabefenster damit die Datei ausgewählt werden kann.
Es ist aber eine Datei dir irgednwann im Laufe von dem Prozess zur Verfügung gestellt wird und natürlich ist jeder Anwender zu faul um vorher zu schaun ob die Datei vorhanden ist oder nicht.
Code ist der:
'Vermessung eintragen
anzahlTabbellenblaetter = ThisWorkbook.Sheets.Count
'Meldung dass Vermessungsdatei ausgewählt werden muss
SollMaDieGaudiestarten = MsgBox("Soll die Vermessung eingelesen werden? Dann bitte die zum Versuch zugehörige Vermessungsdatei auswählen.", vbYesNo, "Woll ma des wirklich?")
'Entscheidung ob ma starten oder ned...
If SollMaDieGaudiestarten = 6 Then
'Variable strDatName zuweisen --> Auswählen der Datei
strDatName = Application.GetOpenFilename
'Öffnet Vermessungsdatei, kopiert die Daten und schließt die Quelldatei
With Workbooks.Open(Filename:=strDatName)
.Sheets("Ergebnis").Copy After:=ThisWorkbook.Sheets(anzahlTabbellenblaetter)
.Close False
End With
Also ein ganz normales einlesen einer Datei - und ich hätte halt gerne die Option dass man in dem Moment in dem das Fenster zum auswählen offen ist noch abbrechen kann und im Code weiterläuft.
Danke
Daniel
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo Daniel,
Zitat:ich glaube nicht dass es schlecht programmiert ist
... dann glauben wir das für Dich mit.
Wäre das vernünftig programmiert, würde auch nichts abrauchen. So einfach ist das Leben ... eben.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 07.11.2014
Version(en): 2007
Ich glaube immer noch dass es nicht nur schlecht programmiert ist - ich meine aber dass da eben noch eine Zusatzfunktion abgeht...
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
19.04.2016, 17:08
(Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2016, 17:09 von Kuwer.)
Hallo Daniel,
'Vermessung eintragen
anzahlTabbellenblaetter = ThisWorkbook.Sheets.Count
'Meldung dass Vermessungsdatei ausgewählt werden muss
SollMaDieGaudiestarten = MsgBox("Soll die Vermessung eingelesen werden? Dann bitte die zum Versuch zugehörige Vermessungsdatei auswählen.", vbYesNo, "Woll ma des wirklich?")
'Entscheidung ob ma starten oder ned...
If SollMaDieGaudiestarten = 6 Then
'Variable strDatName zuweisen --> Auswählen der Datei
strDatName = Application.GetOpenFilename
If Not CVar(strDatName) = False Then
'Öffnet Vermessungsdatei, kopiert die Daten und schließt die Quelldatei
With Workbooks.Open(Filename:=strDatName)
.Sheets("Ergebnis").Copy After:=ThisWorkbook.Sheets(anzahlTabbellenblaetter)
.Close False
End With
End If
End If
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Daniel.Haering
Registriert seit: 07.11.2014
Version(en): 2007
Das war genau das was ich gesucht habe - herzlichen Dank für die konstruktive Hilfe!
Registriert seit: 29.09.2015
Version(en): 2030,5
Code:
If Dir("G:\OF\beispiel.xlsx")<>"" then
with getobject("G:\OF\beispiel.xlsx")
sn=.sheets(1).usedrange
.close 0
end with
thisworkbook.sheets("zusammen").cells(rows.count,1).end(xlup).offset(1).resize(ubound(sn),ubound(sn,2))=sn
end if
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo snb,
Wenn der TE seinen Code noch nicht alleine entsprechend der Fragestellung anpassen konnte, wird er Deinen Code wohl auch nicht verstehen bzw. einbauen können.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.11.2014
Version(en): 2007
Ich glaube schon dass ich den verstehe - das müsste doch so sein wenn ich automatisch nach einer Datei (über Dateiname) in einem Ordner suche.....
Will ich aber nicht - Anwender soll Datei manuell auswählen können, ist nötig falls Daten von verschiedenen Versuchen zusammengeführt werden sollen.