Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

MsgBox

Betrifft: MsgBox von: Benedikt
Geschrieben am: 09.10.2020 22:41:47

Guten Abend
Mit der manuell eingetragenen Fakturanummer in TextBox7 wird die entsprechende Faktura geöffnet
Wenn der Nutzer vergisst die Fakturanummer einzugeben, also Textbox7 leer ist erscheint die MsgBox
Das klappt alles aber wie kann ich eine Meldung geben wenn eine Fakturanummer falsch eingetippt wird, d.h. wenn keine entsprechende Datei im Verzeichnis existiert.
Mein Laienversuch mit If Not TextBox7 = TextBox7.Text & ".xlsm" Then ist nicht gut angekommen...
Danke für Hilfe

Dim sDateiName As String
sDateiName = TextBox7.Text & ".xlsm"

If TextBox7 = "" Then
MsgBox "Rechnungsnummer in Textbox eingeben", _
64, " Info für " & Application.UserName
Unload Me
Exit Sub
End If
Workbooks.Open Filename:="C:\Test\Faktura\Archiv\" & sDateiName

Betrifft: AW: MsgBox
von: ralf_b
Geschrieben am: 09.10.2020 23:15:08

https://www.xelplus.com/excel-vba-check-if-file-folder-exists-dir/

Betrifft: AW: MsgBox
von: Benedikt
Geschrieben am: 10.10.2020 08:15:52

Besten Dank für den Link.
Mein Problem ist nicht die Suche nach dem Ordner, sondern das auffangen der möglichen Fehler, also leeres Textfeld oder Fehler bei der Eingabe der Fakturanummer
If TextBox7 = "" Then hilft schon mal bei leerem Textfeld, aber wie kann ich eine Fehlermeldung machen die bei fehlen des Ordners aktiv wird

Betrifft: AW: MsgBox
von: Nepumuk
Geschrieben am: 10.10.2020 12:27:12

Hallo Benedikt,

teste mal:

Private Sub CommandButton1_Click()
    
    Dim sDateiName As String
    
    If TextBox7.Text = vbNullString Then
        
        MsgBox "Rechnungsnummer in Textbox eingeben", vbInformation, " Info für " & Application.UserName
        
    Else
        
        sDateiName = "C:\Test\Faktura\Archiv\" & TextBox7.Text & ".xlsm"
        
        If Dir$(sDateiName) = vbNullString Then
            
            MsgBox "Rechnungsnummer nicht vorhanden", vbInformation, " Info für " & Application.UserName
            
        Else
            
            Workbooks.Open Filename:=sDateiName
            
        End If
    End If
    
    Unload Me
    
End Sub

Gruß
Nepumuk

Betrifft: AW: MsgBox
von: Hajo_Zi
Geschrieben am: 10.10.2020 08:05:16

If Dir("C:\Test\Faktura\Archiv\" & sDateiName, vbDirectory) <> ""

GrußformelHomepage

Betrifft: AW: MsgBox
von: Benedikt
Geschrieben am: 10.10.2020 08:40:53

Guten Morgen Hajo
Leider funzt dass nicht, Laufzeitfehler 1004, kann nicht gefunden werden
Trotzdem Dankeschön

Betrifft: AW: MsgBox
von: Hajo_Zi
Geschrieben am: 10.10.2020 08:42:20

Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.

Sollte die Datei verlinkt werden?

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.

Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

http://www.excel-ist-sexy.de/bilder-statt-datei/

Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

Das ist nur meine Meinung zu dem Thema.

Gruß Hajo

Betrifft: AW: MsgBox
von: ralf_b
Geschrieben am: 10.10.2020 09:02:15

dann lass mal das sdateiname bei Prüfung auf Verzeichnis weg. und evtl. den Backslash

alternativ lass das vbDirectory weg bei Prüfung auf Datei

Betrifft: Danke Ralf, geht leider nicht
von: Benedikt
Geschrieben am: 10.10.2020 12:14:46

Guten Morgen Ralf
Leider gehen alle drei Varianten nicht
Trotzdem Danke für die dargebotene Hand

Betrifft: AW: MsgBox
von: Herbert_Grom
Geschrieben am: 10.10.2020 12:46:57

Hallo Benedikt,

mach doch davor einen "On Error goto Errorhandler" hin und ganz unten dann:

exit sub
Errorhandler:
Msgbox"Falsche Nr.!",vbCritical ,"!"

Probiers mal!

Servus

Betrifft: Danke Herbert
von: Benedikt
Geschrieben am: 10.10.2020 12:57:01

Vielen Dank Herbert
Genau an dem habe ich gebastelt und funktioniert:
On Error GoTo Fehler

Exit Sub
Fehler:
MsgBox "Rechnung nicht gefunden !"
End Sub

Betrifft: AW: Gerne geschehen und danke für die Rückmeldung!
von: Herbert_Grom
Geschrieben am: 10.10.2020 13:10:26

,,,