Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

alle Excel-Files öffnen

alle Excel-Files öffnen
16.05.2003 14:32:39
Nicole
Hallo zusammen,

ich möchte aus einer Excel-Datei heraus alle Excel-Dateien eines bestimmten Verzeichnisses öffnen lassen und in jeder Datei nach einer bestimmten Info suchen lassen. Wie mache ich das?

Nicole


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: alle Excel-Files öffnen
16.05.2003 14:39:50
Nepumuk

Hallo Nicole,
was soll dann mit der Info passieren? Nur Anzeigen, das sie gefunden wurde, oder ..........?
Gruß
Nepumuk

Re: alle Excel-Files öffnen
16.05.2003 14:50:06
Nicole

Hi Nepumuk,

es soll angezeigt werden, in welcher Datei die Infos gefunden wurden. Es würde sich anbieten, das Ergebnis (also die Dateinamen) in die ausführende Excel-Datei auflisten zu lassen.


Anzeige
Re: alle Excel-Files öffnen
16.05.2003 15:21:02
Nepumuk

Hallo Nicole,
versuch es mal.

Gruß
Nepumuk

Odnerauswahl vergessen
16.05.2003 15:31:46
Nepumuk

Hallo Nicole,
aber jetzt:
Option Explicit

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As LongAs Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpStr1 As StringByVal lpStr2 As StringAs Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pList As LongByVal lpBuffer As StringAs Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As StringByVal lpWindowName As StringAs Long

Private Type InfoT
    hwnd As Long
    Root As Long
    DisplayName As Long
    Title As Long
    Flags As Long
    FName As Long
    lParam As Long
    Image As Long
End Type

Private Function GetAOrdner() As String
    Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
    ChDir "F:\"
    With xl
        .hwnd = FindWindow("xlmain", vbNullString)
        .Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
        .Flags = &H40
    End With
    IDList = SHBrowseForFolder(xl)
    If IDList <> 0 Then
        FolderName = Space(256)
        RVal = SHGetPathFromIDList(IDList, FolderName)
        CoTaskMemFree (IDList)
        FolderName = Trim(FolderName)
        FolderName = Left(FolderName, Len(FolderName) - 1)
    End If
    GetAOrdner = FolderName
End Function

Public Sub Nicole()
    Dim zellen As Range, Suchbegriff As String, Ordner As String
    Dim index1 As Integer, index2 As Integer, Tabelle As Worksheet
    Set Tabelle = ActiveSheet
    Suchbegriff = InputBox("Suchbegriff eingeben", "Eingabe")
    With Application
        .ScreenUpdating = False
        .ShowWindowsInTaskbar = False
    End With
    If Suchbegriff <> "" Then
        Ordner = GetAOrdner
        If Ordner <> "" Then
            Columns(1).ClearContents
            Cells(1, 1) = Suchbegriff
            With Application.FileSearch
                .LookIn = Ordner
                .FileType = msoFileTypeExcelWorkbooks
                If .Execute > 0 Then
                    For index1 = 1 To .FoundFiles.Count
                        Workbooks.Open .FoundFiles(index1)
                        For index2 = 1 To Worksheets.Count
                            With Sheets(index2).Cells
                                Set zellen = .Find(What:=Trim(Suchbegriff), LookAt:=xlWhole, MatchCase:=False)
                                If Not zellen Is Nothing Then
                                    Tabelle.Cells(Tabelle.Range("A65536").End(xlUp).Row + 1, 1) = ActiveWorkbook.Name
                                    Exit For
                                End If
                            End With
                        Next
                        ActiveWorkbook.Close False
                    Next
                End If
            End With
        End If
    End If
    With Application
        .ScreenUpdating = True
        .ShowWindowsInTaskbar = True
    End With
End Sub

     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Nepumuk

Anzeige
Re: Odnerauswahl vergessen
16.05.2003 15:42:13
Nicole

Wow! Vielen Dank! Funktioniert klasse. Muss mal schauen, ob man die Dateien auch gleich offen lassen kann, in denen der gesuchte Begriff gefunden wurde und nur die wieder schließt, wo nichts gefunden wurde?!

Re: Odnerauswahl vergessen
16.05.2003 15:51:46
Nepumuk

Hallo Nicole,
das geht dann so:
Option Explicit

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As LongAs Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpStr1 As StringByVal lpStr2 As StringAs Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pList As LongByVal lpBuffer As StringAs Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As StringByVal lpWindowName As StringAs Long

Private Type InfoT
    hwnd As Long
    Root As Long
    DisplayName As Long
    Title As Long
    Flags As Long
    FName As Long
    lParam As Long
    Image As Long
End Type

Private Function GetAOrdner() As String
    Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
    With xl
        .hwnd = FindWindow("xlmain", vbNullString)
        .Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
        .Flags = 1
    End With
    IDList = SHBrowseForFolder(xl)
    If IDList <> 0 Then
        FolderName = Space(256)
        RVal = SHGetPathFromIDList(IDList, FolderName)
        CoTaskMemFree (IDList)
        FolderName = Trim(FolderName)
        FolderName = Left(FolderName, Len(FolderName) - 1)
    End If
    GetAOrdner = FolderName
End Function

Public Sub Nicole()
    Dim zellen As Range, Suchbegriff As String, Ordner As String
    Dim index1 As Integer, index2 As Integer, Tabelle As Worksheet
    Set Tabelle = ActiveSheet
    Suchbegriff = InputBox("Suchbegriff eingeben", "Eingabe")
    With Application
        .ScreenUpdating = False
        .ShowWindowsInTaskbar = False
    End With
    If Suchbegriff <> "" Then
        Ordner = GetAOrdner
        If Ordner <> "" Then
            Columns(1).ClearContents
            Cells(1, 1) = Suchbegriff
            With Application.FileSearch
                .LookIn = Ordner
                .FileType = msoFileTypeExcelWorkbooks
                If .Execute > 0 Then
                    For index1 = 1 To .FoundFiles.Count
                        Workbooks.Open .FoundFiles(index1)
                        For index2 = 1 To Worksheets.Count
                            With Sheets(index2).Cells
                                Set zellen = .Find(What:=Trim(Suchbegriff), LookAt:=xlWhole, MatchCase:=False)
                                If Not zellen Is Nothing Then
                                    Tabelle.Cells(Tabelle.Range("A65536").End(xlUp).Row + 1, 1) = ActiveWorkbook.Name
                                    Sheets(index2).Select
                                    Range(zellen.Address).Select
                                    Exit For
                                End If
                            End With
                        Next
                        If zellen Is Nothing Then ActiveWorkbook.Close False
                    Next
                End If
            End With
        End If
    End If
    With Application
        .ScreenUpdating = True
        .ShowWindowsInTaskbar = True
    End With
End Sub

     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Nepumuk

Anzeige
DANKE!!
16.05.2003 16:12:04
Nicole

Vielen Dank! Bin froh, dass es Leute wie dich gibt, die Anfänger wie mich unterstützen!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige