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

Makro Start ab Zeile...

Forumthread: Makro Start ab Zeile...

Makro Start ab Zeile...
22.04.2005 12:25:21
Michael
Hallo!
Hab das Problem unten schon mal angerissen, jetzt gehts anstatt der Spalte um die Zeile:
Wie/wo kann ich bestimmen, dass das Makro die Liste ab einer bestimmten Zeile (hier: 7) startet, anstatt in der 1. Zeile?
Danke schon jetzt
M.

Sub Hyperlinks_einfügen()
Dim strFolder As String
Dim icount As Integer
Dim i As Integer
Dim j As Integer
Worksheets(1).Columns(8).Clear
With Application.FileDialog(4)
.InitialFileName = "V:\"
.Title = "Ordner auswählen"
.ButtonName = "Auswahl"
.InitialView = 2
If .Show = -1 Then
strFolder = .SelectedItems(1)
Else
MsgBox "Keine Auswahl getroffen!"
End If
End With
With Application.FileSearch
.NewSearch
.LookIn = strFolder
.Filename = "*.*"
.SearchSubFolders = False
.Execute
icount = .FoundFiles.Count
For i = 1 To icount
Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i, 8), Address:=.FoundFiles(i)
For j = Len(Cells(i, 8)) To 1 Step -1
If Cells(i, 8).Characters(j, 1).Text = "\" Then
Cells(i, 8) = Right(Cells(i, 8), Len(Cells(i, 8)) - j)
Exit For
End If
Next j
Next i
End With
Worksheets(1).Columns("H:H").AutoFit
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Start ab Zeile...
22.04.2005 12:31:26
Ramses
Hallo
anstelle von
For i = 1 To icount
For i = 7 To icount
verwenden
Gruss Rainer
AW: Makro Start ab Zeile...
22.04.2005 13:18:39
Michael
Hi Rainer!
Das hab ich auch gedacht und schon probiert, dann fehlen mir allerdings die ersten 6 Dateien-Namen...
Zur Info: Das Makro soll den Dateinamen von in einem Ordner hinterlegten Dateien auflisten.
Lass ich i = 1 to icount stehen, beginnt die Auflistung in der 1. Zeile, ist aber komplett.
Bei i = 7 beginnt sie zwar in der 7. Zeile, es fehlen aber wie gesagt die ersten 6 Dateinamen...
Anzeige
AW: Makro Start ab Zeile...
22.04.2005 13:24:00
Ramses
Hallo
Probier mal
For i = 7 To ( icount + 6 )
Gruss Rainer
AW: Makro Start ab Zeile...
22.04.2005 13:53:11
Michael
Nee, funzt auch nicht. Immer noch fehlen die ersten 6 Dateinamen, zudem bekomme ich die Fehlermeldung "Laufzeitfehler 9 / Index außerhalb des gültigen Bereichs" beim Debuggen wird die Zeile
Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i, 8), Address:=.FoundFiles(i)
markiert....
Anzeige
AW: Makro Start ab Zeile...
22.04.2005 14:18:36
bst
Auch Hallo,
i wird hier für 2 Dinge gleichzeitig benutzt.
Für den Index in Foundfiles sowie für die Zeilennummer.
Nimm also entweder:
For i = 7 To icount + 6
und ändere dann noch FoundFiles(i) in FoundFiles(i-6) ab
Oder - IMHO schöner - lasse es bei
For i = 1 To icount
und ändere alle Cells(i,...) in Cells(6+i,...)
cu, Bernd
Anzeige
AW: Makro Start ab Zeile...
22.04.2005 14:28:44
Michael
YEAH! Das war's!! Vielen, vielen Dank! Jetzt ist das Teil perfekt!!
Eine Frage bleibt noch: Bei Abbruch (kein Ordner ausgewählt) bekomme ich zwar eine Dialogbox "Keine Auswahl getroffen", danach bekomme ich aber nen Laufzeitfehler 5 "Ungültiger Prozedurablauf oder ungültiges Argument".
Stört zwar eigentlich nicht, sieht aber unschön aus...gibt's da was gegen?
Gruß
Michael
Anzeige
AW: Makro Start ab Zeile...
22.04.2005 14:33:58
bst
Hi Michael,
füge eine Zeile mit "exit sub" unter der Zeile mit MsgBox ein.
cu, Bernd
AW: Makro Start ab Zeile...
22.04.2005 14:46:21
Michael
Vielen Dank!
Ich Trottel! Hab ich alles mal gelernt - vor ca. 5 Jahren an der Uni in WINFO.
Naja. Muss mich da mal dringend wieder reinlesen...hatte ganz vergessen, wieviel Bock das macht! :-)
Kennt jemand nen gutes (Einsteiger)Buch für VBA?
Ansonsten noch mal thanx a lot und jetzt aber wirklich ein schönes Wochenende!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro in Excel ab einer bestimmten Zeile starten


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel ab einer bestimmten Zeile zu starten, kannst Du den folgenden VBA-Code verwenden. Dieser Code listet die Dateinamen aus einem Ordner ab der 7. Zeile auf. Achte darauf, dass Du Excel VBA (Visual Basic for Applications) verwendest.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle "Einfügen" > "Modul", um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code und füge ihn in das Modul ein:
Sub Hyperlinks_einfügen()
    Dim strFolder As String
    Dim icount As Integer
    Dim i As Integer
    Dim j As Integer
    Worksheets(1).Columns(8).Clear
    With Application.FileDialog(4)
        .InitialFileName = "V:\"
        .Title = "Ordner auswählen"
        .ButtonName = "Auswahl"
        .InitialView = 2
        If .Show = -1 Then
            strFolder = .SelectedItems(1)
        Else
            MsgBox "Keine Auswahl getroffen!"
            Exit Sub
        End If
    End With
    With Application.FileSearch
        .NewSearch
        .LookIn = strFolder
        .Filename = "*.*"
        .SearchSubFolders = False
        .Execute
        icount = .FoundFiles.Count
        For i = 1 To icount
            Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i + 6, 8), Address:=.FoundFiles(i)
            For j = Len(Cells(i + 6, 8)) To 1 Step -1
                If Cells(i + 6, 8).Characters(j, 1).Text = "\" Then
                    Cells(i + 6, 8) = Right(Cells(i + 6, 8), Len(Cells(i + 6, 8)) - j)
                    Exit For
                End If
            Next j
        Next i
    End With
    Worksheets(1).Columns("H:H").AutoFit
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Dateinamen ab der 7. Zeile aufzulisten.

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 9 / Index außerhalb des gültigen Bereichs

    • Ursache: Dies tritt auf, wenn Du versuchst, auf eine Zelle zuzugreifen, die nicht existiert. Stelle sicher, dass Du den richtigen Index verwendest, insbesondere bei der Zeilenberechnung.
    • Lösung: Prüfe den Bereich, in dem Du arbeitest und passe gegebenenfalls die Schleife an.
  • Fehler: Fehlende Dateinamen

    • Ursache: Wenn Du den Startwert nicht korrekt einstellst, fehlen die ersten Dateinamen.
    • Lösung: Verwende For i = 1 To icount und passe die Zielzelle mit Cells(i + 6, 8) an.

Alternative Methoden

Eine Alternative zur oben genannten Methode ist, die Schleife so zu gestalten, dass sie alle Zeilen durchläuft, und dann die Zeilen ab der gewünschten Startposition zu befüllen. Beispiel:

For i = 1 To icount
    Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(6 + i, 8), Address:=.FoundFiles(i)
Next i

Hierbei wird das Makro so angepasst, dass es ab der 7. Zeile beginnt, ohne die Schleifenindizes zu vermischen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du das Makro anpassen kannst:

  1. Alle Dateinamen in einer bestimmten Zeile auflisten: Wenn Du die Dateinamen in einer anderen Spalte anstatt Spalte H auflisten möchtest, ändere einfach Cells(i + 6, 8) zu Cells(i + 6, 3) für Spalte C.

  2. Zusätzliche Informationen einfügen: Du kannst auch andere Informationen wie das Änderungsdatum der Dateien hinzufügen, indem Du den Code entsprechend erweiterst.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Halte Deinen Code sauber und gut kommentiert, um die Wartung zu erleichtern.
  • Experimentiere mit den Dateifilteroptionen in dem FileDialog, um nur bestimmte Dateitypen anzuzeigen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um ab einer anderen Zeile zu starten? Du kannst einfach den Startwert in der Schleife anpassen, z.B. For i = 10 To icount, um ab der 10. Zeile zu starten.

2. Bekomme ich eine Fehlermeldung, wenn ich keinen Ordner auswähle? Ja, in diesem Fall wird eine Dialogbox angezeigt. Um die Fehlermeldung zu vermeiden, füge Exit Sub nach der MsgBox-Zeile hinzu.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige