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

Forumthread: AutoFill für dynamischen Bereich

AutoFill für dynamischen Bereich
16.03.2006 11:45:28
Andi
Hi,
ich benutze folgenden VBA-Code, um die letzte Zeile einer Spalte (hier B) zu ermitteln:
Dim LetzteZeile As Long
LetzteZeile = Range("B1").End(xlDown).Row
Um die erste bis letzte Zelle der Spalte B zu markieren, ohne die ganze Spalte markieren zu müssen, verwende ich:
Range("B1:B" & LetzteZeile)
Wie kann ich jetzt im VBA schreiben, dass ich die AutoFill-Funktion von B LetzteZeile bis Spalte F LetzteZeile benutzen kann?
Bsp.:
LetzteZeile = 10
Also will ich AutoFill für B1:LetzteZeile bis F1:LetzteZeile
(LetzteZeile gilt für alle Spalten!)
Selection.AutoFill Destination:=Range("?"), Type:=xlFillDefault
Bei dieser Gelegenheit, wie geben ich in Range die LetzteSpalte als Startwert an?
Range("?:G" & LetzteZeile)
Hoffe, das war verständlich!?!
Vielen Dank
Andi
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFill für dynamischen Bereich
16.03.2006 12:08:20
Beni
Hallo Andi,
die letzte Zeile würde ich von unten nach oben ermitteln, ausser es gibt weiter unten noch Daten, die nicht berücksichtigt werden dürfen.
Gruss Beni
Dim LetzteZeile As Long
LetzteZeile = Range("F65536").End(xlUp).Row
Range("B1").AutoFill Destination:=Range("B1:B" & LetzteZeile), Type:=xlFillDefault
Anzeige
AW: AutoFill für dynamischen Bereich
16.03.2006 13:10:51
Andi
Hallo Beni,
verstehe nicht ganz, welchen Vorteil ich dadurch habe? unten stehen keine daten mehr, funktionieren würde es also.
das löst leider nicht mein problem, trotzdem danke!
Gruß
AW: AutoFill für dynamischen Bereich
16.03.2006 13:32:59
Reinhard
Hi Andi,
wenn du eine Leerzelle in B drin hast findet deine Methode nicht die unterste beschriebene Zellenzeile.
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: AutoFill für dynamischen Bereich
16.03.2006 13:37:25
Mac4
Hast Du es mal so probiert?
Selection.AutoFill Destination:=Range("B1:F" & LetzteZeile), Type:=xlFillDefault
Marc
AW: AutoFill für dynamischen Bereich
16.03.2006 14:28:30
Andi
@ Marc:
Das habe ich gesucht, funktioniert perfekt, danke!!
@ Reinhard:
Achso! Das Problem hab ich durch das Löschen von leeren Zellen schon beseitigt ;)
Danke trotzdem für den Tipp!
Weiß einer von Euch (oder jmd. hier im Forum), wie ich die Range so starte, dass ich bei der letzten Zeile anfange, nehmen wir mal Spalte D und enden bei G:
Range("D" & LetzteZeile:"G" & LetzteZeile) is ja Murks, also wie schreibe ich das?
Vielen Dank
Andi
Anzeige
AW: AutoFill für dynamischen Bereich
16.03.2006 14:36:18
Mac4
Sorry, verstehe leider nur Bahnhof - mach doch mal ein Beispiel.
Marc
AW: AutoFill für dynamischen Bereich
16.03.2006 14:50:46
Andi
ok,
also Zeile 10 ist die letzte Zeile (bei allen Spalten) und ich speichere den Wert in der Variablen "LetzteZeile".
(Nur noochmal zum Verständins: Ich benutze eine Formel zum Ausrechnen der letztenZeile, weil ich das ja nicht jedesmal selber zählen will und diese Zahl von mal zu mal verschieden ist)
Jetzt will ich den Bereich A10:F10 selektieren.
Wie gebe ich das mit der Variablen "LetzteZeile" an?
Range(?)
oder anders formuliert:
Beim Range Befehl gebe ich als Zielzelle, also NACH dem Doppelpunkt das so an:
:A" & LetzteZeile)
Frage1:
wie schreibe ich das, wenn ich die letzte Zeile als Startzelle, also VOR dem Doppelpunkt angeben will.
Pseudocode: "? : G14"
Frage2:
Wie kombiniere ich das bei Start- und Zielzelle?
Pseudocode: "A LetzteZeile : F LetzteZeile"
sorry für die umständliche Umschreibung, weiß es gerade auch nicht besser zu vermitteln
~:|
vielen Dank für die Mühe
Anzeige
AW: AutoFill für dynamischen Bereich
16.03.2006 14:57:39
Mac4
So!
Range("A" & LetzteZeile & ":F" & LetzteZeile)
oder
Range(Cells(LetzteZeile,"A"),Cells(LetzteZeile,"F"))
Marc
AW: AutoFill für dynamischen Bereich
16.03.2006 15:04:40
Andi
Ah!! Heureka!
Das habe ich gesucht!
Vielen Dank auch!
Andi
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

AutoFill für dynamischen Bereich in Excel


Schritt-für-Schritt-Anleitung

Um die AutoFill-Funktion in Excel mit VBA für einen dynamischen Bereich zu nutzen, kannst Du die folgenden Schritte befolgen:

  1. Letzte Zeile ermitteln: Verwende den VBA-Code, um die letzte Zeile einer Spalte zu ermitteln. Beispiel:

    Dim LetzteZeile As Long
    LetzteZeile = Range("B1").End(xlDown).Row
  2. AutoFill-Bereich festlegen: Definiere den Bereich, den Du autofüllen möchtest. Zum Beispiel von Spalte B bis Spalte F:

    Range("B1").AutoFill Destination:=Range("B1:F" & LetzteZeile), Type:=xlFillDefault
  3. Verwenden von Selection: Du kannst auch die Selection-Eigenschaft verwenden, um den AutoFill-Bereich zu bestimmen:

    Selection.AutoFill Destination:=Range("B1:F" & LetzteZeile), Type:=xlFillDefault

Häufige Fehler und Lösungen

  • Excel Autofill funktioniert nicht: Wenn Du leere Zellen in Deinem Bereich hast, kann die Ermittlung der letzten Zeile fehlschlagen. Stelle sicher, dass keine Leerzellen vorhanden sind, oder ändere die Methode zur Ermittlung der letzten Zeile.

  • Falscher Bereich angegeben: Achte darauf, dass Du den richtigen Bereich in der Destination-Eigenschaft angibst. Beispiel:

    Range("A" & LetzteZeile & ":F" & LetzteZeile)

Alternative Methoden

Falls die oben beschriebenen Methoden nicht funktionieren, kannst Du auch die Cells-Eigenschaft verwenden:

Range(Cells(LetzteZeile, "A"), Cells(LetzteZeile, "F")).AutoFill Destination:=Range("A" & LetzteZeile & ":F" & LetzteZeile), Type:=xlFillDefault

Diese Methode bietet mehr Flexibilität, insbesondere wenn Du mit variablen Start- und Endzellen arbeitest.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen, die VBA AutoFill-Funktion effektiv zu nutzen:

  1. AutoFill für eine Spalte mit einer Formel:

    Range("C1").Formula = "=A1 + B1"
    Range("C1").AutoFill Destination:=Range("C1:C" & LetzteZeile), Type:=xlFillDefault
  2. AutoFill für mehrere Spalten:

    Dim LetzteZeile As Long
    LetzteZeile = Range("B1").End(xlDown).Row
    Range("B1:F1").AutoFill Destination:=Range("B1:F" & LetzteZeile), Type:=xlFillDefault

Tipps für Profis

  • Verwende xlFillDefault: Achte darauf, dass Du den richtigen Fill-Typ angibst, um die gewünschten Ergebnisse zu erzielen.

  • Automatisierung mit Schleifen: Wenn Du mehrere Spalten oder Zeilen gleichzeitig autofüllen möchtest, kannst Du Schleifen verwenden, um den Prozess zu automatisieren.

  • VBA Autocomplete nutzen: Verwende die Autocomplete-Funktion in VBA, um Schreibfehler zu vermeiden und schneller zu arbeiten.


FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile in einer Spalte? Verwende den folgenden Code:

LetzteZeile = Range("A" & Rows.Count).End(xlUp).Row

2. Was ist der Unterschied zwischen AutoFill und FillDown? AutoFill kopiert Formeln und Werte in ein definiertes Muster, während FillDown nur die Zelle direkt über der aktiven Zelle wiederholt.

3. Wie kann ich AutoFill für mehrere Spalten gleichzeitig nutzen? Du kannst mehrere Spalten in der Destination-Eigenschaft angeben, z.B. Range("A1:F" & LetzteZeile).

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