Microsoft Excel

Herbers Excel/VBA-Archiv

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

Fehlermeldung 13, was nun oder wie denn?

Betrifft: Fehlermeldung 13, was nun oder wie denn?
von: Reto
Geschrieben am: 13.04.2003 - 14:09:08

Hallo

Ich habe es jetzt mal so, aber es gibt mir einen LAufzeitfehler 13 Typen unverträglich. Was kann man da machen?

Also ich möchte keine Fehlermeldung, wenn das Öffnenfenster offen ist und ich Abbrechen betätige. Aber so funktioniert es auch nicht. Was nun ?

Selection:
fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt", 1, _
"Bitte wähle die gewünschte .txt-Datei von DEINEM Verzeichnis aus ...", MultiSelect:=False)
If fileToOpen = False Then
MsgBox "Die Datei konnte wegen Benutzerabbruch nicht gespeichert werden!", vbOKOnly + vbCritical, "Speichern fehlgeschlagen"
Exit Sub 'Vorzeitiges Ende
Else
'Konvertierung
Workbooks.OpenText FileName:=fileToOpen, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)) ', _
TrailingMinusNumbers:=True

'Zeile 1-3 und die letzte Zeile löschen
Dim LoLetzte As Long
LoLetzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Rows(LoLetzte).Delete
Rows("1:3").Delete
End If

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Knut
Geschrieben am: 13.04.2003 - 14:12:59

Als welchen Datentyp hast du fileToOpen deklariert?
Sollte Variant sein und dann erstmal den Rückgabetyp mit VarType prüfen, ist es Boolean, dann wuede nix ausgewählt.
Knut

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Reto
Geschrieben am: 13.04.2003 - 15:00:05

wurde als string deklariert.
Ich sehe du hast eine Vorstellung, wie das aussehen könnte, aber da habe ich zuwenig Erfahrung mit deklarieren und Rückgabewerten. Vielleicht kannst du das für mich optimieren,oder mindestens Infos geben. Bin im vornherein dankbar.

Gruss Reto

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Ramses
Geschrieben am: 13.04.2003 - 16:04:39

Hallo,

die einfachste Variante

If FileToOpen = "" Then

Gruss Rainer

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Reto
Geschrieben am: 13.04.2003 - 16:33:58

Hallo Rainer
das funktioniert auch nicht, denn jetzt kommt ein Laufzeitfehler 1004. Falsch.xls wurde nicht gefunden.
Bei Betätigung des Debbuggen wird die gesamte Konvertierung gelb markiert.
Gruss Reto

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Ramses
Geschrieben am: 13.04.2003 - 16:49:19

Hallo Reto,

habe gereade gesehen, dass du mit XP arbeitest.
Deine Code Anweisung ( Else... ) habe ich nicht getestet, aber der Rest funktioniert.

Ist ein klein wenig anders aufgebaut, nutzt dafür alle Vorteile von XP :-)



Sub A_Datei_wählen()
'Das muss in den Deklarationsbereich
Dim FileDlg As FileDialog
Set FileDlg = Application.FileDialog(msoFileDialogFilePicker)

'Dein bisheriger Code

Selection:
With FileDlg
    .Title = "Wählen Sie eine Datei oder mehrere aus"
    'Environ(25) ermittelt den Aktuellen Userpfad
    'Alternativ kann hier auch die Variable vom vorherigen
    'Dialog eingesetzt werden
    '.InitialFileName = Suchpfad
    .InitialFileName = Environ(25) & "\Eigene Dateien\"
    .Filters.Clear
    .Filters.Add "Nur Text Dateien", "*.txt", 1
    'Andere Filterauswahlen sind möglich
    'Die Zahl gibt die Position in der Auswahlbox an
    '.Filters.Add "CSV Dateien", "*.csv", 2
    .FilterIndex = 1
    .ButtonName = "Dateien öffnen"
    'AllowMultiSelect = True dann können mehrere Dateien gewählt werden
    .AllowMultiSelect = False
    'Hier werden nur kleine Symbole angezeigt
    '.InitialView = msoFileDialogViewSmallIcons
    .InitialView = msoFileDialogViewLargeIcons
    .Show
    If .SelectedItems.Count = 0 Then
        MsgBox "Sie haben keine Datei gewählt", vbCritical + vbOKOnly, "Dateifehler"
        Exit Sub
    Else
        'Konvertierung
        Workbooks.OpenText Filename:=fileToOpen, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=FalseTab:=False, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _
        ), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1))
        'Zeile 1-3 und die letzte Zeile löschen
        Dim LoLetzte As Long
            LoLetzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        Rows(LoLetzte).Delete
        Rows("1:3").Delete
    End If
End With
Set FileDlg = Nothing
End Sub 

     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Reto
Geschrieben am: 13.04.2003 - 17:35:57

Hallo Rainer
bei mir sind aber keine txt-dateien sichtbar.
Was mach ich falsch oder was muss ich ändern?

Gruss Reto

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Ramses
Geschrieben am: 13.04.2003 - 17:48:00

Hallo Reto,

dann gehe ich davon aus, dass keine txt-Dateien vorhanden sind.
Bei mir funktioniert es tadellos.

Ein kleiner Fehler ist mir noch aufgefallen, wenn du die gewählte Datei öffnen willst, geht es nicht, weil deine Variable noch drin steht. Es muss heissen:

Workbooks.OpenText Filename:=.SelectedItems(1), Origin:=xlWindows, _

Gruss Rainer

  

Re: Fehlermeldung 13, was nun oder wie denn?
von: Reto
Geschrieben am: 13.04.2003 - 18:03:32

Mir ist aufgefallen, dass es mir allgemein nur Ordner anzeigt und keine Dateien.
Ich habe genügend .txt-Dateien im betreffenden Ordner. Aber sie werden nicht angezeigt.

Gruss Reto

  

Mein Fehler
von: Reto
Geschrieben am: 13.04.2003 - 18:18:25

Sorry
Ich habe im Code bei Environ "\Eigene Dateien\" ausgeblendet und dann sind eben keine txt-dateien sichtbar. Das ist dumm.

Obwohl das für mich ist, habe ich da noch eine Interessenfrage.
Wie müsste das bei Office 97 oder so aussehen und warum?
Vielleicht hast du noch einwenig kostbare Zeit für diese Erklärung. Danke

Gruss Reto

  

Re: Mein Fehler
von: Ramses
Geschrieben am: 13.04.2003 - 18:42:39

Hallo Reto,

die Anzeige in Office 97 ist grundsätzlich unterschiedlich, weil es diesen Dialogtyp dort nicht gibt.
Dort musst mit dem normalen FileDialog arbeiten.
Die Rückgabe des Dialogwertes dort musst du dann mit

If FileDialog_Anweisung = "" Then

abfangen.
Zum testen für eine O97 Anwendung musst du O97 installiert haben um es testen zu können. Es sind zuviele kleine Unterschiede zwischen 2000/XP um das einheitlich beantworten zu können.

Wenn du aber ein einheitliches Programm erstellen willst, kannst du die Version abfragen.

X = Application.Version
Select Case X
Case 8 'Office 97
Deine Anweisung für dieses Version
Case > 9
Deine Anweisung für diese Versionen
End Select


Gruss Rainer

  

Re: Mein Fehler
von: Reto
Geschrieben am: 13.04.2003 - 23:02:03

Danke für deine Antworten. Deine Makro läuft bei mir tadellos. Merci nochmals.
Übrigens, aus welcher Gegend stammst du eigentlich(Schweiz)?

Ich war eben am grillieren, darum die späte Nachricht.

Gruss Reto

  

Re: Mein Fehler
von: Ramses
Geschrieben am: 14.04.2003 - 08:05:53

Hallo Reto,

Ich bin 2 km vom geografischen Mittelpunkt der Schweiz entfernt :-)
... und nun schauen wir mal wie gut du die Schweiz kennst ;-))

Gruss Rainer

 

Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung 13, was nun oder wie denn?"