hilfdirselbst.ch
Facebook Twitter gamper-media
cwenet S
Beiträge: 855
26. Okt 2013, 11:48
Beitrag #1 von 6
Bewertung:
(2361 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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)
Top
 
X
Klaus79 S
Beiträge: 291
28. Okt 2013, 13:41
Beitrag #2 von 6
Beitrag ID: #519019
Bewertung:
(2310 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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] Top
 
cwenet S
Beiträge: 855
29. Okt 2013, 18:31
Beitrag #3 von 6
Beitrag ID: #519090
Bewertung:
(2273 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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] Top
 
Klaus79 S
Beiträge: 291
30. Okt 2013, 15:56
Beitrag #4 von 6
Beitrag ID: #519132
Bewertung:
(2228 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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] Top
 
cwenet S
Beiträge: 855
2. Nov 2013, 12:51
Beitrag #5 von 6
Beitrag ID: #519237
Bewertung:
(2153 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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] Top
 
Klaus79 S
Beiträge: 291
2. Nov 2013, 21:25
Beitrag #6 von 6
Beitrag ID: #519248
Bewertung:
(2122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

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


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] Top
 
X