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

Forumthread: Datei öffnen - nur bestimmte Datei anzeigen

Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 08:32:00
Philipp
Hallo!
Ich öffne via Makro eine Datei und befülle diese mit Daten. Der Benutzer öffnet die Datei selbst, da sie öfter mal ihren Namen ändert. Jetzt möchte ich aber, dass nur bestimmte Dateinamen angezeigt werden, welche "Übersicht" im Dateinamen haben.
Mein Makro schaut derzeit foglendermaßen aus:
Dim wkb As Workbook
Dim sFile As Variant
Dim sFile1 As String
Dim iOpen As Integer
Dim myvar1
Dim pfad As Variant
pfad = "\\IO\folder\"
sFile1 = "\\IO\folder\TAB_QXS_Aktionen-ÜbersichtTEST.xls"
ChDrive "L"
pfad = "\\IO\folder"
ChDir "\\IO\folder\"
iOpen = TestOpen(sFile1)
Select Case iOpen
Case 0:
Case 1: MsgBox "Datei " & "TAB_QXS_Aktionen-ÜbersichtTEST.xls" & " ist geöffnet und kann NICHT benutzt werden" & " Bitte Schliessen!!"
Exit Sub
Case 2: MsgBox "Datei " & "TAB_QXS_Aktionen-ÜbersichtTEST.xls" & " wurde nicht gefunden"
Exit Sub
End Select
Application.ScreenUpdating = False
ChDir "L:\folder\"
sFile = Application.GetOpenFilename("Excel-Datei (*.xls), *TEST.xls")
If sFile = False Then Exit Sub
Ist das überhaupt möglich?
Danke für RÜckmeldungen.
LG

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 08:59:45
ede
guten morgen,
dan schau mal in der hilfe unter "GetOpenFilename" nach.
sFile = Application.GetOpenFilename("Excel-Datei (*.xls), *TEST.xls", "*.xls")
gruss

AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 09:18:00
Philipp
Hoi!
Bei dieser Zeile:
If sFile = False Then Exit Sub
sagt er mir so aber, dass die Daten unverträglich sind!

Anzeige
AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 09:26:07
Ramses
Hallo
mach es so
If StrPtr(sFile) = 0 then Exit Sub
Gruss Rainer

AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 09:26:00
ede
sorry, habe selber ein komma übersehen.
ich glaube, man kann nur "*.FileTyp" angeben. eine maske auf den dateinamen selber geht glaub ich nicht.
stelle mal wieder auf offen
gruss

Anzeige
AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 10:39:03
Philipp
Hat noch wer ne Lösung? Komme irgendwie nich auf nen grünen Pfad!

AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 11:04:15
Ramses
Hallo
"...Hat noch wer ne Lösung?.."
Wozu ?
Mit meinem Beitrag kannst du abfangen ob der Benutzer auf "Abbrechen" geklickt hast.
Den Dateinamen kannst du ebenfallst noch überprüfen,... wenn es denn nötig sein sollte
If sFile = "C:\DeinPfad\DeinDateiname" Then
Wo liegt also das Problem ?
Gruss Rainer

Anzeige
AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 11:10:00
Philipp
Naja, das Problem is, dass ede mir ne falsche Lösung gegeben hat, weil er nen Beistrich evrgessn hat. Daher kam das Problem, welches deine Lösung nicht beseitigt hat. Im Grunde steh ich wieder beim ersten Post.

AW: Datei öffnen - nur bestimmte Datei anzeigen
31.08.2007 12:11:00
Philipp
Ganz vergessen "noch offen" anzuhaken

AW: Datei öffnen - nur bestimmte Datei anzeigen
02.09.2007 21:00:28
fcs
Hallo Philipp,
wenn du die Datei tatsächlich öffnen willst, dann kannst du auch den Datei-Öffnendialog mit einem Dateifilter verwenden. Arg1 ist hierbei der Parameter für den Dateinamen-Filter
Evtl. hilft das ja weiter.
Gruß
Franz

Sub aaaTest()
Dim test As Variant, wbTest As Workbook
ChDir ("C:\Test\Daten")
test = Application.Dialogs(xlDialogOpen).Show(arg1:="*test*.xls")
If test = False Then
MsgBox "Abbrechen im Öffnen-Dialog geklickt, Makro wird abgebrochen!"
Exit Sub
Else
MsgBox "Du bist auf dem richtigen Weg!"
Set wbTest = ActiveWorkbook
wbTest.Close
End If
End Sub


Anzeige
AW: Datei öffnen - nur bestimmte Datei anzeigen
03.09.2007 07:34:00
Philipp
Hui, das funktioniert ja. Das Problem is jetzt nur, dass ichs nich ganz schaff meinen Code damit zu kombinieren.
Möchte nämlich Daten ins geöffnete File einfügen. Ist das überhaupt mit dieser Variante möglich?
lG

offen, oT
03.09.2007 07:34:53
Philipp

AW: offen, oT
03.09.2007 10:43:00
fcs
Hallo Philipp,
wenn du uns noch verräts, wo die Daten herkommen und wo sie hin sollen, dann können wir weiterhelfen.
Am besten ist es, du deklarierst zu Beginn der Prozedur entsprechende Variablen für Arbeitsmappen (Workbook) und Tablellenblätter(Worksheet).
Beispiel:
Dim wbQuelle as Workbook, wbZiel as Workbook, wksQuelle as Worksheet, wksZiel as Worksheet
an den passenden Stellen in der Prozedur weist du den Variablen ihre Objekte zu
Beispiel:
Set wbQuelle = Workbooks("DateiXYZ.xls)
Set wksQuelle = wbQuelle.Worksheets("Tabelle1")
Set wbZiel = ActiveWorkbook
Set wksZiel = wbZiel.Worksheets("Daten")
Jetzt kannst du problemlos Daten in die deklarierten Tabellen eintragen, zwischen Tabellen Daten kopieren etc. Beispiele:
wksZiel.Cells(1,1)=2007
wksZiel.Cells(2,4)=wksQuelle(2,4)
wksQuelle.Range("A4:G10").Copy Destination:=wksZiel.cells(ZeileX,1)
Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nur bestimmte Dateien anzeigen beim Öffnen in Excel


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und erstelle ein neues Makro. Du kannst dies unter "Entwicklertools" > "Visual Basic" tun.

  2. VBA-Code einfügen: Füge den folgenden VBA-Code in dein Makro ein. Dieser Code öffnet einen Dialog, der nur Dateien anzeigt, die "Übersicht" im Dateinamen enthalten.

    Sub DateiÖffnen()
       Dim sFile As Variant
       Dim wb As Workbook
    
       sFile = Application.GetOpenFilename("Excel-Datei (*.xls), *Übersicht*.xls")
       If sFile = False Then Exit Sub
    
       Set wb = Workbooks.Open(sFile)
       ' Hier kannst du weiterarbeiten, z.B. Daten einfügen
    
       ' Beispiel zum Einfügen von Daten
       wb.Worksheets(1).Cells(1, 1).Value = "Neuer Wert"
    End Sub
  3. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus. Du solltest nun nur Dateien sehen, die "Übersicht" im Namen haben.


Häufige Fehler und Lösungen

  • Fehler: Daten unverträglich: Wenn du die Zeile If sFile = False Then Exit Sub verwendest, und es einen Fehler gibt, ändere dies zu If StrPtr(sFile) = 0 Then Exit Sub. Diese Lösung wurde von einem Benutzer im Forum vorgeschlagen.

  • Dateinamen-Filter funktioniert nicht: Wenn dein Filter nicht wie gewünscht funktioniert, stelle sicher, dass du die korrekten Wildcards wie * verwendest, um alle relevanten Dateien anzuzeigen.


Alternative Methoden

Eine alternative Methode ist die Verwendung des Dialogs xlDialogOpen. Hier ein Beispiel:

Sub DialogÖffnen()
    Dim test As Variant
    ChDir ("C:\Pfad\zu\deinen\Dateien")
    test = Application.Dialogs(xlDialogOpen).Show(arg1:="*Übersicht*.xls")
    If test = False Then
        MsgBox "Abbrechen im Öffnen-Dialog geklickt, Makro wird abgebrochen!"
        Exit Sub
    Else
        MsgBox "Datei wurde erfolgreich ausgewählt!"
    End If
End Sub

Hierbei wird der Dialog geöffnet, und du kannst sicherstellen, dass nur die gewünschten Dateien angezeigt werden.


Praktische Beispiele

  1. Daten aus einer Datei kopieren: Wenn du Daten aus einer bestimmten Datei in eine andere Datei übertragen möchtest, kannst du dies folgendermaßen tun:

    Sub DatenKopieren()
       Dim wbQuelle As Workbook, wbZiel As Workbook
       Dim wksQuelle As Worksheet, wksZiel As Worksheet
    
       Set wbZiel = ActiveWorkbook
       Set wbQuelle = Workbooks.Open("C:\Pfad\zur\Datei\Quelle.xls")
    
       Set wksQuelle = wbQuelle.Worksheets(1)
       Set wksZiel = wbZiel.Worksheets(1)
    
       wksZiel.Cells(1, 1).Value = wksQuelle.Cells(1, 1).Value
    
       wbQuelle.Close
    End Sub
  2. Daten einfügen: Um Daten in die geöffnete Datei einzufügen, kannst du den folgenden Code verwenden:

    wbZiel.Worksheets(1).Cells(2, 1).Value = "Eingefügter Wert"

Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Dies verbessert die Performance, wenn du mehrere Änderungen an der Arbeitsmappe vornimmst.

  • Mit Fehlern umgehen: Implementiere Error-Handling, um unerwartete Fehler abzufangen und den Benutzer entsprechend zu informieren.

  • Dateinamen dynamisch anpassen: Wenn du häufig mit verschiedenen Dateinamen arbeitest, könnte es sinnvoll sein, eine Funktion zu erstellen, die dir die Dateinamen aus einem bestimmten Verzeichnis abruft.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur .xls-Dateien angezeigt werden?
Du kannst den Filter im GetOpenFilename-Dialog so anpassen: "Excel-Datei (*.xls), *.xls".

2. Ist es möglich, auch .xlsx-Dateien anzuzeigen?
Ja, du kannst den Filter erweitern, indem du beide Dateitypen angibst: "Excel-Datei (*.xls; *.xlsx), *.xls; *.xlsx".

3. Was tun, wenn der Dialog nicht öffnet?
Stelle sicher, dass dein Excel-Makro aktiviert ist und keine Sicherheitswarnungen angezeigt werden, die das Ausführen von Makros verhindern.

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