Makro weiterlaufen obwohl keine Datei ausgewählt
#1
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
Top
#2
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.
Top
#3
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
Top
#4
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Daniel.Haering
Top
#5
Ich glaube immer noch dass es nicht nur schlecht programmiert ist - ich meine aber dass da eben noch eine Zusatzfunktion abgeht...
Top
#6
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:
  • Daniel.Haering
Top
#7
Das war genau das was ich gesucht habe - herzlichen Dank für die konstruktive Hilfe!
Top
#8
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
Top
#9
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)
Top
#10
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.
Top


Gehe zu:


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