Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei nicht gefunden-Abbruchnachricht

Forumthread: Datei nicht gefunden-Abbruchnachricht

Datei nicht gefunden-Abbruchnachricht
23.03.2009 13:12:43
Rolf
Hallo Leute,
Ich habe untenstehendes Makro:

Private Sub CommandButton7_Click()
Dim Dateiname As String
Dateiname = InputBox("Bitte prüfen Sie den Namen der Referenzliste," & vbCr & "oder geben Sie  _
den richtigen Namen unten ein:" & vbCr & "(Bsp.: Referenzliste_für_Berichtmanager_27.08.08.xlt)", "LISTE LADEN", "Referenzliste_für_Berichtmanager_" & Date & ".xlt")
'FALLS ANWENDER AUF ABBRECHEN GEDRÜCKT HAT
If Dateiname = "" Then
strTxt = "Sie haben den Vorgang abgebrochen. Die Daten wurden nicht Importiert!"
MsgBox strTxt, vbCritical
Exit Sub
End If
ChDir _
"N:\Verkauf\Verkauf-Info\Referenzlisten\01_Referenzliste_ab_2000_Berichtmanager"
Workbooks.Open Filename:= _
"N:\Verkauf\Verkauf-Info\Referenzlisten\01_Referenzliste_ab_2000_Berichtmanager\" &  _
Dateiname
Cells.Select
Selection.Copy
Windows("Berichtmanager.xls").Activate
Cells.Select
ActiveSheet.Paste
Range("A2").Select
Windows("" & Dateiname & "").Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub


Das funktioniert soweit. Main Problem liegt in der folgenden Situation:
Wird in das Inputfeld ein Name eingegeben, den es nicht gibt, bricht das Makro ab (Laufzeitfehler).
Wie kann ich das beheben?
Gruss
Rolf

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei nicht gefunden-Abbruchnachricht
23.03.2009 13:18:32
Ramses
Hallo
....
If Dir(Workbooks.Open Filename:= "N:\Verkauf\Verkauf-Info\Referenzlisten\01_Referenzliste_ab_2000_Berichtmanager\" & Dateiname) = "" then
Msgbox "Datei existiert nicht"
Exit sub
Endif
Workbooks.Open ....
Warum nimmst du nicht den FileDialog (GetOpenFilename) wo der Anwender die Datei zum öffnen auswählen muss ? Das ist doch sicherer.
Gruss Rainer
Anzeige
AW: Datei nicht gefunden-Abbruchnachricht
23.03.2009 13:23:11
Rolf
Hi Ramses
Wäre natürlich schön mit GetOpenFilename!
Aber mit meinen bescheidenen VBA Kentnissen... Kannst du mir da noch ein klein wenig "auf den Sprung" helfen?
Danke vorerst
Rolf
AW: Datei nicht gefunden-Abbruchnachricht
23.03.2009 13:34:34
D.Saster
Hallo,
Ansatz:

Sub OpenFile()
Dim DateiName As String
With Application.FileDialog(3)
.AllowMultiSelect = False
.InitialFileName = "n:\test\*.xls"
.InitialView = 2
.Title = "Bitte Datei wählen"
If .Show = -1 Then
DateiName = .SelectedItems(1)
End If
End With
If DateiName = "" Then
MsgBox "Abbruch", , "Abbruch"
Exit Sub
End If
Workbooks.Open DateiName
End Sub


Gruß
Dierk

Anzeige
AW: Datei nicht gefunden-Abbruchnachricht
23.03.2009 14:02:30
Rolf
Hallo D. Saster
Damit kann ich arbeiten! Habe gearbeitet wie folgt:

Private Sub CommandButton7_Click()
Dim DateiName As String
With Application.FileDialog(3)
.AllowMultiSelect = False
.InitialFileName = "N:\Verkauf\Verkauf-Info\Referenzlisten\ _
01_Referenzliste_ab_2000_Berichtmanager"
.InitialView = 2
.Title = "LISTE LADEN"
If .Show = -1 Then
DateiName = .SelectedItems(1)
End If
End With
If DateiName = "" Then
strTxt = "Sie haben den Vorgang abgebrochen. Die Daten wurden nicht Importiert!"
MsgBox strTxt, vbCritical
Exit Sub
End If
Workbooks.Open DateiName
Cells.Select
Selection.Copy
Windows("Berichtmanager 2.0.xls").Activate
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
Windows("" & DateiName & "").Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub


Ein Teil funktioniert noch nicht:
Windows("" & DateiName & "").Activate
Dort setzt er nun den gesamten Pfad ein. Ich bräuchte da aber nur den Namen der Datei, damit ich sie nach dem Kopieren automatisch schliessen kann. Oder gibt's da 'ne eleganteere Lösung?
Danke für die grosse Hilfe!
Rolf

Anzeige
AW: Datei nicht gefunden-Abbruchnachricht
23.03.2009 14:22:38
D.Saster
Hallo,
verzichte auf Select und Activate.

Private Sub CommandButton7_Click()
Dim DateiName As String, wkbListe As Workbook
Dim wksAktuell As Worksheet
Const strTxt = "Sie haben den Vorgang abgebrochen. Die Daten wurden nicht Importiert!"
Set wksAktuell = ActiveSheet
With Application.FileDialog(3)
.AllowMultiSelect = False
.InitialFileName = "N:\Verkauf\Verkauf-Info\Referenzlisten\ _
01_Referenzliste_ab_2000_Berichtmanager"
.InitialView = 2
.Title = "LISTE LADEN"
If .Show = -1 Then
DateiName = .SelectedItems(1)
End If
End With
If DateiName = "" Then
MsgBox strTxt, vbCritical
Exit Sub
End If
Set wkbListe = Workbooks.Open(DateiName)
Cells.Copy
wksAktuell.Cells.PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
wkbListe.Close False
End Sub


Gruß
Dierk

Anzeige
Und er leif durch die Strassen und rief "Heureka!"
23.03.2009 15:40:25
Rolf
Hallo Dierk
Entgegen deinem Alias funktioniert es. Danke für die Hilfe und das rausnehmen der Selects und Activates. (Ist, wie gedacht, die elegantere Lösung)
Also nochmals Merci und Gruss
Rolf
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige