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

Forumthread: VBA: AutoFill

VBA: AutoFill
13.01.2006 01:57:32
Michelle
hallo zusammen
ich hab ne frage zum AutoFill innerhalb von makros.
angenommen ich hab eine tabelle mit datensätzen, die den bereich A3 bis D100 füllen. mit dem makro schreibe ich in die zelle E3 eine formel, die ich nun mit AutoFill "runterziehen" möchte. wie kriege ich heraus, wie viele datensätze ich in der tabelle habe bzw. wie weit ich "ziehen" muss?
das ganze noch im AutoFill-syntax:
Selection.AutoFill Destination:=Range("E3:E100"), Type:=xlFillDefault
wie komme ich auf E100?
1000 dank für eine antwort!
lg, michelle
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: AutoFill
13.01.2006 02:03:54
Josef
Hallo Michelle!
Schon wieder ich;-)
Dim lngLast As Long


lngLast = Cells(Rows.Count, 1).End(xlUp).Row
'Letzte gefüllte Zelle in Spalte "A" ermitteln [, 1) = A; , 2) = B; ...]

Range("E3").AutoFill Destination:=Range("E3:E" & lngLast) ', Type:=xlFillDefault
'Ohne Select, gleich auf die Ursprungszelle verweisen!
'Type brauchst du in dem Fall auch nicht, weil Default!

Jetz geh' ich aber ins Bett!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: VBA: AutoFill
13.01.2006 02:13:43
Michelle
hallo sepp!
nochmals danke danke danke :))
ausprobieren tu ich's auch erst morgen (öhm... bzw. heute), aber wird bestimmt klappen. danke auch für den kommentar, so versteh' das sogar ich...
lg, michelle
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA AutoFill in Excel: So funktioniert's


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA das AutoFill zu nutzen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf deinen VBA-Projektordner und wähle Einfügen > Modul.
  3. Schreibe den Code: Verwende den folgenden VBA-Code, um die letzte gefüllte Zeile zu ermitteln und die AutoFill-Funktion anzuwenden:

    Dim lngLast As Long
    lngLast = Cells(Rows.Count, 1).End(xlUp).Row
    Range("E3").AutoFill Destination:=Range("E3:E" & lngLast), Type:=xlFillDefault

    In diesem Beispiel wird die letzte gefüllte Zeile in Spalte A ermittelt und die AutoFill-Funktion auf den Bereich E3 bis zur letzten Zeile angewendet.


Häufige Fehler und Lösungen

  • Fehler: "Anwendungsfehler"
    Lösung: Stelle sicher, dass der Zielbereich korrekt definiert ist. Achte darauf, dass die Destination-Range die korrekten Zellreferenzen enthält.

  • Fehler: AutoFill funktioniert nicht
    Lösung: Überprüfe, ob der Anfangswert in der Zelle E3 korrekt ist und ob die Zellen in der Spalte A tatsächlich Daten enthalten.


Alternative Methoden

Wenn du mit selection.autofill arbeitest, kannst du auch eine Alternative zum direkten Manipulieren der Range verwenden. Hier ist ein Beispiel:

Selection.AutoFill Destination:=Range("E3:E" & lngLast), Type:=xlFillDefault

Diese Methode funktioniert ähnlich, allerdings ist es oft besser, direkt auf die Zelle zuzugreifen, um die Effizienz zu steigern.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit Datensätzen in den Zellen A3 bis D100. Um die Formel in E3 bis zur letzten Zeile zu ziehen, kannst du folgenden Code verwenden:

Sub AutoFillExample()
    Dim lngLast As Long
    lngLast = Cells(Rows.Count, 1).End(xlUp).Row
    Range("E3").Formula = "=A3+B3" ' Beispiel Formel
    Range("E3").AutoFill Destination:=Range("E3:E" & lngLast)
End Sub

In diesem Beispiel wird eine einfache Addition durchgeführt, aber du kannst jede beliebige Formel verwenden.


Tipps für Profis

  • Nutze xlFillSeries anstelle von xlFillDefault, wenn du eine Serie von Werten füllen möchtest, anstatt nur die Werte zu kopieren.
  • Experimentiere mit verschiedenen Type-Werten, um herauszufinden, welche für deine spezifischen Anforderungen am besten geeignet sind.
  • Wenn du mit großen Datensätzen arbeitest, erwäge, die Berechnung auf manuell zu setzen, um die Geschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie finde ich die letzte gefüllte Zeile in einer bestimmten Spalte?
Du kannst die folgende Zeile verwenden:

lngLast = Cells(Rows.Count, 1).End(xlUp).Row

Ersetze 1 durch die entsprechende Spaltennummer.

2. Wie kann ich die AutoFill-Funktion anpassen?
Ändere den Type-Parameter in der AutoFill-Methode, um verschiedene Füllmethoden zu verwenden, wie xlFillSeries oder xlFillCopy.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in allen modernen Excel-Versionen (Excel 2007 und höher) funktionieren.

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