Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiendung und VBA

Forumthread: Dateiendung und VBA

Dateiendung und VBA
15.12.2008 10:19:00
Peter
Hallöchen an alle,
Hab da wahrscheinlich nur mal ein kleines Problem, aber ich komme mal wieder nicht auf die Lösung.
Bin dabei für meine Fa. einige Makros zu schreiben. Mir ist aber nun afgefallen, dass diese Makros teilweise auf den anderen Rechnern nicht laufen. Problem habe ich schon erkannt: DIE DATEIENDUNG.
Da diese auf meinem Rechner ausgeschaltet ist, arbeite ich in VBA natürlich auch nicht damit. Wenn diese aber eingeschaltet ist, laufen die Makros nicht mehr mit Hinweis ausserhalb des Indexes.
Wie kann ich also am Anfang des Makros überprüfen, ob die Dateinamenerweiterung ein- oder ausgeschaltet ist?
Habe es schon über einen IF Befehl versucht, der mir die letzten 4 stellen auslesen soll, aber als Ergebnis bekomme ich immer ".xls", egal ob die Erweiterung ein- oder ausgeschaltet ist.
Beispiel:
~f

Sub test()
If Right(ThisWorkbook.Name, 4) = ".xls" Then
MsgBox (".xls")
Else
MsgBox ("Keine Dateiendung")
End If
End Sub


~f
Vielen Dank schon mal für Eure Hilfe.
Gruß an alle
Peter

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiendung und VBA
15.12.2008 10:21:00
Rudi
Hallo,
das ist doch völlig egal, ob ein- oder ausgeschaltet. Das ist nur Ansichtssache. Vorhanden ist die Endung immer.
Gruß
Rudi
AW: Dateiendung und VBA
15.12.2008 10:26:00
Peter
Hallo Rudi,
leider ist es nicht egal.
Erst als wir die Dateinamenerweiterung bei einem Kollegen ausgeschaltet haben, hat die ganze Geschichte funktioniert, ansonsten hat er sich beschwert, dass er das bereits offene Workbook nicht finden kann.
Und bei mir (Endung ausgeschaltet) habe ich am Anfang auch so gearbeitet, als ob die Endung vorhanden wäre und prompt die gleiche Meldung, bereits geöffnetes Fenster kann nicht aktiviert werden.
Deswegen habe ich alle Dateinamen in Variabaln ohne Endung hinterlegt.
Gruß
Peter
Anzeige
AW: Dateiendung und VBA
15.12.2008 10:35:21
Tino
Hallo,
dies habe ich jetzt auch mal getestet, habe die Dateierweiterung bei bekannten Typen abgestellt, konnte die Datei aber weiterhin mit Erweiterung ansprechen. (öffnen, aktivieren)
Sonst Prüfe ob die 4. Stelle (xl2007 auch die 5. Stelle) von rechts ein Punkt ist.
Gruß Tino
AW: Dateiendung und VBA
15.12.2008 11:11:05
Rudi
Hallo,
das kann ich nicht nachvollziehen.

Sub tt()
Dim wkb As Workbook
Set wkb = Workbooks("test.xls")
End Sub


funktioniert sowohl bei eingeblendeten als auch ausgeblendeten Endungen.
Gruß
Rudi

Anzeige
Reg. Schlüssel auslesen
15.12.2008 12:56:00
Tino
Hallo,
hier noch eine Möglichkeit um zu prüfen ob die Dateierweiterung eingeschaltet ist.
Hier wird der Registrierungseintrag ausgelesen.
Sub RegLesen()
Dim objShell As Object
Dim sRegName As String, bolWert As Boolean
Set objShell = CreateObject("WScript.Shell")
    sRegName = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt"
    bolWert = objShell.RegRead(sRegName)

If bolWert Then
 MsgBox "Dateierweiterung ist ausgeschaltet"
Else
 MsgBox "Dateierweiterung ist eingeschaltet"
End If

End Sub


Getestet unter Vista, ob dafür jetzt Adminrechte erforderlich sind habe ich nicht getestet.
Gruß Tino

Anzeige
;
Anzeige

Infobox / Tutorial

Dateiendungen in Excel VBA richtig nutzen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass Deine Excel-Makros unabhängig von den Dateinamenerweiterungen auf verschiedenen Rechnern funktionieren, kannst Du folgende Schritte befolgen:

  1. Überprüfen der Dateinamenerweiterung: Füge am Anfang Deines Makros eine Überprüfung ein, um herauszufinden, ob die Dateiendung ein- oder ausgeschaltet ist. Hier ist ein Beispiel, wie Du das mit VBA umsetzen kannst:

    Sub checkFileExtension()
       Dim fileName As String
       fileName = ThisWorkbook.Name
    
       If Right(fileName, 4) = ".xls" Then
           MsgBox "Dateiendung ist sichtbar."
       Else
           MsgBox "Dateiendung ist nicht sichtbar."
       End If
    End Sub
  2. Verwendung der Windows-Registrierung: Du kannst auch den Registrierungseintrag auslesen, um zu prüfen, ob die Dateinamenerweiterung in Windows 11 angezeigt wird. Verwende dazu das folgende VBA-Skript:

    Sub RegLesen()
       Dim objShell As Object
       Dim sRegName As String, bolWert As Boolean
       Set objShell = CreateObject("WScript.Shell")
       sRegName = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt"
       bolWert = objShell.RegRead(sRegName)
    
       If bolWert Then
           MsgBox "Dateierweiterung ist ausgeschaltet"
       Else
           MsgBox "Dateierweiterung ist eingeschaltet"
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des Bereichs"
    Wenn Du versuchst, auf eine Datei zuzugreifen, die keine sichtbare Endung hat, kann es zu diesem Fehler kommen. Stelle sicher, dass Du die Dateinamenerweiterung korrekt behandelst.

  • Lösung: Überprüfen der Dateiendungen
    Nutze die oben genannten Methoden, um die Sichtbarkeit der Dateiendungen zu überprüfen, bevor Du auf Dateien zugreifst.


Alternative Methoden

  1. Dateiendungen alphabetisch sortieren: Du kannst eine Liste aller Dateiendungen erstellen und sie alphabetisch sortieren, um die Übersicht zu behalten. Dies hilft, bei der Programmierung von Makros die richtigen Dateiendungen zu verwenden.

  2. Verwendung einer Tabelle: Erstelle eine Tabelle in Excel mit verschiedenen Dateiendungen und ihren zugehörigen Eigenschaften. Dies kann Dir bei der Programmierung helfen, die richtigen Endungen zu wählen.


Praktische Beispiele

  • Beispiel für eine Dateiendungen-Liste: Erstelle eine Tabelle mit den häufigsten Dateiendungen in Excel, wie zum Beispiel:

    Dateiendung Beschreibung
    .xls Excel 97-2003 Arbeitsmappe
    .xlsx Excel 2007 und höher
    .xlsm Excel-Arbeitsmappe mit Makros
  • Verwendung in VBA: Du kannst diese Liste nutzen, um sicherzustellen, dass Du die richtigen Dateiendungen in Deinen VBA-Skripten verwendest.


Tipps für Profis

  • Makros dokumentieren: Halte fest, welche Dateiendungen Du in Deinen Makros verwendest, um zukünftige Probleme zu vermeiden.
  • Testen auf verschiedenen Systemen: Teste Deine Makros auf unterschiedlichen Rechnern und mit verschiedenen Windows-Versionen, um sicherzustellen, dass sie überall funktionieren.
  • Regelmäßige Updates: Stelle sicher, dass Du regelmäßig Updates für Excel und Windows durchführst, um Kompatibilitätsprobleme mit Dateiendungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Dateinamenerweiterung in Excel anzeigen?
Du kannst die Dateinamenerweiterung anzeigen, indem Du in den Ordneroptionen von Windows die Einstellung für "Dateinamenerweiterungen anzeigen" aktivierst.

2. Was ist der Unterschied zwischen .xls und .xlsx?
Die .xls-Endung gehört zu älteren Excel-Versionen (97-2003), während .xlsx für Dateien steht, die in Excel 2007 und späteren Versionen erstellt wurden.

3. Warum funktionieren meine Makros nicht auf anderen Rechnern?
Das kann an unterschiedlichen Einstellungen der Dateinamenerweiterungen auf den einzelnen Rechnern liegen. Stelle sicher, dass Du die Sichtbarkeit der Endungen in Deinen Makros berücksichtigst.

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