Microsoft Excel

Herbers Excel/VBA-Archiv

Inhaltsverzeichnis mit Link

Betrifft: Inhaltsverzeichnis mit Link von: Ulrich
Geschrieben am: 01.11.2020 10:16:13

Hallo Zusammen,


ich möchte gerne in einer Exceldatei „Inhaltsverzeichnis.xlsx“ die Dateinamen der Dateien aus dem aktuellen Dateiordner und aus Unterordnern in 4 Spalten aufgelistet haben; die aufgelisteten Dateien sollen mit einem hyperlink zum Aufrufen der Datei versehen werden.


Spalte B -- Dateinamen die mit GB_ beginnen

Spalte E -- Dateinamen die mit BA_ beginnen

Spalte H -- Dateinamen die mit BG_ beginnen

Spalte K -- Dateinamen die mit XX_ beginnen


(Sortierung Alphabetisch „Dateiname und Verlinkung zur Datei)


Die Dateien können unterschiedliches Dateiformat haben, z.B. Excel, Word, pdf ......


kann mir diesbezüglich jemand helfen?

vielen Dank dafür


Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Hajo_Zi
Geschrieben am: 01.11.2020 11:45:44

Hallo Uli,

http://hajo-excel.de/gepackt/vba2007/ordner_auslesen_hyperlink2007.zip

Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren

GrußformelHomepage

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich
Geschrieben am: 01.11.2020 16:47:34

Hallo,

danke für deine Mail,

folgender Fehler (siehe Anlage) wir mir angezeigt







Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Hajo_Zi
Geschrieben am: 01.11.2020 16:58:46

Hallo Uli,

es Stand nicht im Beitrag das es eine 64 bit Version ist.

Gru� Hajo

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 17:06:12

Hallo Hajo,

sorry, das habe ich nicht gewusst das die Version bekannt sein muß.

Ich habe jetzt folgendes "PtrSafe" in den rot markierten Zeilen ergänzt.
Der Fehler ist jetzt weg, es öffnet sich auch ein Fenster zum Auslesen der Dateien, aber dann bricht Excel ab.

Als Anlage eine Beispieldatei wie ungefähr das Inhaltsverzeichnis aussehen soll,

https://www.herber.de/bbs/user/141232.xlsx

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 16:49:25

Hallo,

hier noch eine kurze Beispieldatei



https://www.herber.de/bbs/user/141230.xlsx




Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 01.11.2020 14:39:59

Hallo Ulli,

was soll mit Dateien passieren die nicht mit den angegebenen Buchstaben beginnen? Ab welcher Zeile? Wo soll der Dateiname hin und wo der Link oder genügt es den Dateinamen im Link anzuzeigen?

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich
Geschrieben am: 01.11.2020 16:39:08

Hallo Nepumuk,

vielen Dank für deine Mail.

- Dateien ohne diese Anfangsbuchstaben können unberücksichtigt bleiben.
- Die Auflistung kann direkt unter der Überschrift beginnen(in der Beispieldatei ab Zeile 4)
- Der Dateiname soll direkt in die freien Zellen der Spalte eingetragen werden
- Den Dateinamen mit dem link versehen wäre gut.

ich habe noch eine kleine Beispieldatei angehängt
https://www.herber.de/bbs/user/141228.xlsx

Danke für deine Mühe.

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 17:10:33

Hallo Nepumuk,

mein Excel ist eine 64 bit Version, ich hatte das vergessen anzugeben.

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: max.kaffl@gmx.de
Geschrieben am: 01.11.2020 17:14:39

Hallo Ulli,

ich versuche Programme so zu schreiben dass es für beide Versionen passt. Teste mal:

https://www.herber.de/bbs/user/141233.xlsm

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 17:28:00

Hallo Nepumuk,

das ist ja Wahnsinn, geil, funktioniert.

Wäre es noch möglich das er den aktuellen Ordner (und Unterordner)direkt vorschlägt?

Ansonsten super!!

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: max.kaffl@gmx.de
Geschrieben am: 01.11.2020 17:29:34

Hallo Ulli,

was verstehst du unter "aktuellen Ordner"?

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 17:36:17

Hallo Nepumuk,

als "Aktuellen Ordner" meine ich den Ordner in dem das Inhaltsverzeichnis abgelegt ist.
Es wäre noch das i-Tüpfelchen wenn er diesen Ordner vorschlagen würde (Unterordner einbezogen)

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 01.11.2020 17:41:09

Hallo Ulli,

so:
.InitialFileName = ThisWorkbook.Path

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 01.11.2020 17:45:58

Hallo Ulli,

doch besser so:
.InitialFileName = ThisWorkbook.Path & "\"
Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 14:07:02

Hallo Nepumuk,
ich habe noch eine kurze Frage (ich hoffe es nervt nicht)

Ich habe die Tabelle etwas verändert.
Es sollen in Spalte B Dateien aufgelistet werden, die mit LT_ beginnen. (alles gleichartige Excel Dateien)
ich habe dein Makro mit meinem Halbwissen angepasst.

Folgende Zellinhalte aus den Dateien sollen rausgezogen werden

Spalte 5 Zelle B5
Spalte 8 Zelle D6
Spalte 11 Zelle D7

Ist das so überhaupt möglich?

Wenn die Rahmen (einfache Linie) auch mit erstellt werden wäre klasse.

Vielleicht hast du noch einmal die Möglichkeit dir das anzusehen.

https://www.herber.de/bbs/user/141276.xlsm


Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 03.11.2020 14:22:20

Hallo Ulli,

aus welcher Tabelle sollen die Daten kommen?

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 14:35:38

Hallo Nepumuk,

Jeweils aus den Dateien (Excel), die links in Spalte B als Inhaltsverzeichnis aufgeführt werden.
Das heißt, es werden wieder die Dateinamen mit der Verlinkung aufgelistet (Spalte B), und aus diesen Dateien werden jeweils 3 Zellen (B5; D6; D7) ausgelesen und in die benachbarten Spalten eingelesen.

Ich hoffe das ist verständlich.

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 03.11.2020 15:02:01

Hallo Ulli,

teste mal:

Public Sub Inhaltsverzeichnis()
    
    Const COLUMN_NUMBER As Long = 2
    
    Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim ialngIndex As Long, lngFileCount As Long
    Dim strFolder As String
    
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    
    With objFileDialog
        
        .AllowMultiSelect = False
        .ButtonName = "Auswählen"
        .Title = "Ordner auswählen"
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then strFolder = .SelectedItems(1)
        
    End With
    
    Set objFileDialog = Nothing
    
    If strFolder <> vbNullString Then
        
        With Application
            .Calculation = xlCalculationManual
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        
        Set objFileSearch = New clsFileSearch
        
        With Tabelle1
            Call .Range(.Cells(4, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)).ClearContents
        End With
        
        With objFileSearch
            
            .CaseSenstiv = False
            .Extension = "*.xls*"
            .FolderPath = strFolder
            .SubFolders = True
            .NewSearch = True
            .SearchLike = "LT_*"
            
            lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
            
            For ialngIndex = 1 To lngFileCount
                
                With .Files(ialngIndex)
                    
                    Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:=True)
                    
                    Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(ialngIndex + 3, COLUMN_NUMBER), _
                        Address:=.Path, TextToDisplay:=.Filename)
                    
                    With objWorkbook.Worksheets(1)
                        Tabelle1.Cells(ialngIndex + 3, 5).Value = .Cells(5, 2).Value
                        Tabelle1.Cells(ialngIndex + 3, 8).Value = .Cells(6, 4).Value
                        Tabelle1.Cells(ialngIndex + 3, 11).Value = .Cells(7, 4).Value
                    End With
                    
                    With Tabelle1
                        With .Range(.Cells(ialngIndex + 3, 2), .Cells(ialngIndex + 3, 11))
                            Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
                            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
                            With .Borders(xlInsideVertical)
                                .LineStyle = xlContinuous
                                .Weight = xlThin
                            End With
                        End With
                    End With
                    
                    Call objWorkbook.Close(SaveChanges:=False)
                    
                    Set objWorkbook = Nothing
                    
                End With
            Next
        End With
        
        Set objFileSearch = Nothing
        
        With Application
            .Calculation = xlCalculationAutomatic
            .EnableEvents = True
            .ScreenUpdating = True
        End With
        
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 15:58:08

Hallo Nepumuk,

folgender Fehler kommt:



Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 03.11.2020 16:10:34

Hallo Ulli,

der Type ist im Modul1 definiert. Den darfst du natürlich nicht löschen.

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 16:13:46

Hallo Nepumuk,

sorry, funktioniert doch, ich Doof hatte das ganze alte Makro gelöscht.

Also funktioniert doch, nur die alten Daten und Rahmen in der Tabelle (falls vorhanden) werden vor dem aktualisieren durch Ausführen des Makro nicht gelöscht.(wäre gut wenn das vorher passieren würde)
Ansonsten super

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 03.11.2020 16:27:15

Hallo Ulli,

so:

Public Sub Inhaltsverzeichnis()
    
    Const COLUMN_NUMBER As Long = 2
    
    Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
    Dim objWorkbook As Workbook
    Dim ialngIndex As Long, lngFileCount As Long
    Dim strFolder As String
    
    Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
    
    With objFileDialog
        
        .AllowMultiSelect = False
        .ButtonName = "Auswählen"
        .Title = "Ordner auswählen"
        .InitialFileName = ThisWorkbook.Path & "\"
        If .Show Then strFolder = .SelectedItems(1)
        
    End With
    
    Set objFileDialog = Nothing
    
    If strFolder <> vbNullString Then
        
        With Application
            .Calculation = xlCalculationManual
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        
        With Tabelle1
            Call .Range(.Cells(4, 2), .Cells(.Rows.Count, 11)).Clear
        End With
        
        With Tabelle1
            Call .Range(.Cells(4, COLUMN_NUMBER), Cells(.Rows.Count, COLUMN_NUMBER)).ClearContents
        End With
        
        Set objFileSearch = New clsFileSearch
        
        With objFileSearch
            
            .CaseSenstiv = False
            .Extension = "*.xls*"
            .FolderPath = strFolder
            .SubFolders = True
            .NewSearch = True
            .SearchLike = "LT_*"
            
            lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
            
            For ialngIndex = 1 To lngFileCount
                
                With .Files(ialngIndex)
                    
                    Set objWorkbook = Workbooks.Open(Filename:=.Path, UpdateLinks:=3, ReadOnly:=True)
                    
                    Call Tabelle1.Hyperlinks.Add(Anchor:=Tabelle1.Cells(ialngIndex + 3, COLUMN_NUMBER), _
                        Address:=.Path, TextToDisplay:=.Filename)
                    
                    With objWorkbook.Worksheets(1)
                        Tabelle1.Cells(ialngIndex + 3, 5).Value = .Cells(5, 2).Value
                        Tabelle1.Cells(ialngIndex + 3, 8).Value = .Cells(6, 4).Value
                        Tabelle1.Cells(ialngIndex + 3, 11).Value = .Cells(7, 4).Value
                    End With
                    
                    With Tabelle1
                        With .Range(.Cells(ialngIndex + 3, 2), .Cells(ialngIndex + 3, 11))
                            Call .BorderAround(LineStyle:=xlContinuous, Weight:=xlThin)
                            With .Borders(xlInsideVertical)
                                .LineStyle = xlContinuous
                                .Weight = xlThin
                            End With
                        End With
                    End With
                    
                    Call objWorkbook.Close(SaveChanges:=False)
                    
                    Set objWorkbook = Nothing
                    
                End With
            Next
        End With
        
        Set objFileSearch = Nothing
        
        With Application
            .Calculation = xlCalculationAutomatic
            .EnableEvents = True
            .ScreenUpdating = True
        End With
        
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 16:33:13

Hallo Nepumuk,

großartig !!

Kann ich dir das irgendwie gut machen?
vielleicht habe ich in der Zukunft noch einmal etwas, dann käme ich mir doof vor dich wieder zu belästigen.

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Nepumuk
Geschrieben am: 03.11.2020 16:40:25

Hallo Ulli,

spende 25€ an SOS-Kinderdorf.

https://www.sos-kinderdorf.de/

Kinder sind das wichtigste was es gibt.

Gruß
Nepumuk

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 03.11.2020 17:45:06

Hallo Nepumuk,

das mache ich gerne.

Vielen Dank noch einmal für deine Hilfe.

Gruß Ulli

Betrifft: AW: Inhaltsverzeichnis mit Link
von: Ulrich Imhoff
Geschrieben am: 01.11.2020 17:58:50

Hallo Nepumuk,

vielen Dank für deine Hilfe, ganz große Klasse!

Ich wünsche dir noch einen schönen Abend!

Gruß Ulli

Beiträge aus dem Excel-Forum zum Thema "Inhaltsverzeichnis mit Link"