Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro: Selection.AutoFill Destination

Forumthread: Makro: Selection.AutoFill Destination

Makro: Selection.AutoFill Destination
26.01.2006 09:09:42
Hermann
guten morgen,
wer kann mir bitte helfen? Ich möchte meine Formel immer nur bis zum letzten Wert der Tabelle haben. Die Länge ist aber variabel.
Wie baue ich am vernünftigsten eine Variable für A1887 ein?
Selection.AutoFill Destination:=Range("A2:A1887")
Hab schon eine evtl. Lösung. Weiss aber nicht so recht, wie ich die einbaue..
activecell.offset(1,0).select
loop until activecell.value = "
Vielen Dank für Eure Hilfe
Gruss Hermann H.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Selection.AutoFill Destination
26.01.2006 09:20:30
Harald
Moin Hermann
oder so..
Dim Lrow as long
Lrow = cells(rows.count, 1).end(xlup).row 'für Spalte A
Selection.AutoFill Destination:=Range("A2:A" & Lrow)
Gruss Harald
AW: Makro: Selection.AutoFill Destination
26.01.2006 09:41:15
Hermann
Danke Harald...
Es funktioniert leider nicht!
AW: Makro: Selection.AutoFill Destination
26.01.2006 09:58:46
Harald
Brrrr...bin echt noch nicht wach ;-((
also zuerst. Hier gibts ein Feature namens "Frage noch offen". Damit kann man im Thread bleiben und die Frage als nicht beantwortet kennzeichnen.
Zweitens. Wenns nicht klappt, dazuschreiben, warum nicht.
Drittens...kann ja auch nicht klappen, da Spalte A auszufüllen ist und man aus diesem Grund nicht vorher in Spalte A die letzte gefüllte Zelle suchen soll.
in dem Codeschnipsel sucht er in Spalte A cells(rows.count, 1).
1 = A
Ersetze die 1 durch die Zahl der Spalte, die die maßgebliche Zeilenanzahl besitzt.
z.B
Lrow = cells(rows.count, 2).end(xlup).row 'für Spalte B
Selection.AutoFill Destination:=Range("A2:A" & Lrow)
Gruss Harald
Anzeige
Danke
26.01.2006 10:12:45
Hermann
Danke Harald für deine Anmerkungen. Ich werde sie in Zukunft berücksichtigen. Muss mich noch ein bissl intensiver mit VBA beschäftigen.
Gruss Hermann H.
Gern geschehen
26.01.2006 11:12:31
Harald
..und den Bock mit der falschen Spaltennummer hab ja ich geschossen
Gruss Harald
;
Anzeige

Infobox / Tutorial

Dynamisches Autofill in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Selection.AutoFill-Methode in Excel VBA zu nutzen und den Autofill-Zielbereich dynamisch zu gestalten, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster auf "VBAProject" > Einfügen > Modul.

  3. Gib den VBA-Code ein:

    Sub DynamicAutoFill()
       Dim Lrow As Long
       ' Bestimme die letzte Zeile in Spalte A
       Lrow = Cells(Rows.Count, 1).End(xlUp).Row
       ' Führe das Autofill bis zur letzten Zeile aus
       Range("A2").Select
       Selection.AutoFill Destination:=Range("A2:A" & Lrow)
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle DynamicAutoFill und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Problem: "Excel Autofill funktioniert nicht!"

    • Lösung: Stelle sicher, dass du die richtige Spalte für die letzte Zeile verwendest. Wenn du in Spalte A die letzte gefüllte Zelle suchst, solltest du nicht die letzte Zeile in Spalte A suchen, sondern in der Spalte, die die relevanten Daten enthält.
  • Problem: "Der Zielbereich ist nicht korrekt."

    • Lösung: Überprüfe, ob die Lrow-Variable korrekt gesetzt ist. Nutze Cells(Rows.Count, X).End(xlUp).Row, wobei X die Spalte ist, die die Daten enthält.

Alternative Methoden

Eine alternative Methode zur Bestimmung der letzten Zeile könnte die Verwendung von UsedRange sein. Hier ist ein Beispiel:

Sub AlternativeAutoFill()
    Dim Lrow As Long
    ' Bestimme die letzte Zeile basierend auf dem verwendeten Bereich
    Lrow = ActiveSheet.UsedRange.Rows.Count
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & Lrow)
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Autofill-Funktion erweitern kannst:

  1. Autofill für mehrere Spalten:

    Sub FillMultipleColumns()
       Dim Lrow As Long
       Lrow = Cells(Rows.Count, 1).End(xlUp).Row
       Range("A2:B2").Select
       Selection.AutoFill Destination:=Range("A2:B" & Lrow)
    End Sub
  2. Autofill mit einer Bedingung:

    Sub ConditionalAutoFill()
       Dim Lrow As Long
       Lrow = Cells(Rows.Count, 1).End(xlUp).Row
       If Lrow > 1 Then
           Range("A2").Select
           Selection.AutoFill Destination:=Range("A2:A" & Lrow)
       End If
    End Sub

Tipps für Profis

  • Verwendung von Variablen: Immer eine Variable für die letzte Zeile zu nutzen, ist eine gute Praxis. Das macht deinen Code flexibler und robuster.
  • Namen für Bereiche: Überlege, ob du für häufig genutzte Bereiche benannte Bereiche in Excel verwenden möchtest, um deinen Code zu vereinfachen.
  • Fehlerbehandlung einfügen: Füge On Error Resume Next und On Error GoTo 0 hinzu, um Fehler im Code zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich den Autofill-Zielbereich für eine andere Spalte anpassen? Du musst die Zahl in Cells(Rows.Count, X) ändern, wobei X die Spaltennummer ist, die die relevante Datenmenge enthält.

2. Warum funktioniert Selection.AutoFill manchmal nicht? Das kann passieren, wenn der Zielbereich nicht korrekt definiert ist oder wenn keine Daten in der Quellzelle vorhanden sind, die aufgefüllt werden sollen. Stelle sicher, dass die Quellzelle die richtigen Daten enthält.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige