[GastForen Programme Office Microsoft Office Dir$() und Dateifilter (Word2010, Makro, Win7)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Office - Alles fürs Büro
Themen
Beiträge
Moderatoren
Letzter Beitrag

Dir$() und Dateifilter (Word2010, Makro, Win7)

cwenet
Beiträge gesamt: 1139

26. Okt 2013, 11:48
Beitrag # 1 von 6
Bewertung:
(2739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

folgendes Makro findet in einem zuvor ausgewählten Ordner alle doc und docx Dateien.
Wie kann ich auch noch rtf Dateien berücksichtigen?

Code
Sub filtertest() 

Dim strFileName As String
Dim strPath As String
Dim fDialog As FileDialog

Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Bitte Ordner wählen und OK klicken."
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Vorgang durch Benutzer abgebrochen", , _
"Word Makros"
Exit Sub
End If
strPath = fDialog.SelectedItems.Item(1) & "\"
End With

'doc und docx dokumente verarbeiten
strFileName = Dir$(strPath & "*.doc")

While Len(strFileName) <> 0
WordBasic.DisableAutoMacros 1
MsgBox (strPath & strFileName)


strFileName = Dir$()
WordBasic.DisableAutoMacros 0

Wend


End Sub


Bitte um Hilfe.

Gruss
Christoph

(Dieser Beitrag wurde von cwenet am 26. Okt 2013, 11:49 geändert)
X

Dir$() und Dateifilter (Word2010, Makro, Win7)

Klaus79
Beiträge gesamt: 341

28. Okt 2013, 13:41
Beitrag # 2 von 6
Beitrag ID: #519019
Bewertung:
(2687 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,
ungetestet:

strFileName = Dir$(strPath & "*.doc, *.rtf")

Und das sollte in jedem fall funktionieren:

Dim strPath As Variant
strPath = Application.GetOpenFilename(*.doc; *.rtf")
If strPath = False Then Exit Sub

Gruß
Klaus


als Antwort auf: [#518971]

Dir$() und Dateifilter (Word2010, Makro, Win7)

cwenet
Beiträge gesamt: 1139

29. Okt 2013, 18:31
Beitrag # 3 von 6
Beitrag ID: #519090
Bewertung:
(2650 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Klaus,

danke für Deine Antwort.

Ersteres hatte leider nicht funktioniert.

Beim Zweiten bin ich mir nicht sicher, wie ich es anwenden soll.
So habe ich es mal versucht.
Methode oder Datenobjekt nicht gefunden lautet die Fehlermeldung.

Code
Dim strFileName As String 
Dim strPath As Variant
Dim fDialog As FileDialog

Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Bitte Ordner wählen und OK klicken."
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Vorgang durch Benutzer abgebrochen", , _
"Word Makros"
Exit Sub
End If
strPath = Application.GetOpenFilename("*.doc; *.rtf")
End With

'doc und docx dokumente verarbeiten
strFileName = Dir$(strPath)

While Len(strFileName) <> 0
WordBasic.DisableAutoMacros 1
MsgBox (strPath & strFileName)


strFileName = Dir$()
WordBasic.DisableAutoMacros 0

Wend



Hast Du noch eine Idee?
Gruß
Christoph


als Antwort auf: [#519019]

Dir$() und Dateifilter (Word2010, Makro, Win7)

Klaus79
Beiträge gesamt: 341

30. Okt 2013, 15:56
Beitrag # 4 von 6
Beitrag ID: #519132
Bewertung:
(2605 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,
ich muss ein wenig im Trüben fischen weil ich einen Mac habe -
und da sieht es natürlich komplett anders aus.

Versuch mal

Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.Title = "Bitte Ordner wählen und OK klicken."
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList 'braucht es diese Zeile wirklich?
.Filters.Clear
.Filters.Add "Word-Dateien", "*.doc", 1
.Filters.Add "Text-Dateien", "*.rtf", 2
.ButtonName = "wählen"
.Show
On Error Resume Next
strFileName = .SelectedItems(1)
If Err <> 0 Then
MsgBox "Vorgang durch Benutzer abgebrochen", vbInformation + vbOKOnly, "Fehler"
Else
End If
On Error GoTo 0
End With

Wenn's auch nicht hilft und hier niemand weiter weis
empfehle ich dieses Forum:
http://www.office-loesung.de/viewforum4_0_0.php

Gruß
Klaus


als Antwort auf: [#519090]

Dir$() und Dateifilter (Word2010, Makro, Win7)

cwenet
Beiträge gesamt: 1139

2. Nov 2013, 12:51
Beitrag # 5 von 6
Beitrag ID: #519237
Bewertung:
(2530 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieben Dank Klaus,

für Deine Mühe. Es scheint auf dem Mac wohl doch etwas anders zu laufen.

Ich habe nun folgende Abfrage genutzt:

Code
If (gFileExtension(strFileName) = "doc") Or (gFileExtension(strFileName) = "docx") Or (gFileExtension(strFileName) = "rtf") Then 


mit dieser Funktion:
Code
'Funktion für Dateiendung 
Public Function gFileExtension(ByVal sFileTitle As String) _
As String
'Argument: Dateiname ohne Pfad
'Rückgabe: Kennung/Endung

Dim nPos As Long

nPos = InStrRev(sFileTitle, ".")
If nPos <> 0 Then
gFileExtension = Mid(sFileTitle, nPos + 1)
End If
End Function



Schöne Grüße
Christoph


als Antwort auf: [#519132]

Dir$() und Dateifilter (Word2010, Makro, Win7)

Klaus79
Beiträge gesamt: 341

2. Nov 2013, 21:25
Beitrag # 6 von 6
Beitrag ID: #519248
Bewertung:
(2499 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,
danke für Deine Rückmeldung.

Die Funktion mit der Abfrage werde ich mir auch mal bunkern -
für den Fall der Fälle ...

Gruß
Klaus


als Antwort auf: [#519237]
X