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

Forumthread: Makro nur auf markierten Bereich anwenden

Makro nur auf markierten Bereich anwenden
10.03.2006 15:38:45
SKO
Hallo,
ich möchte in einer Excel-Tabelle
1. manuell einen gewissen Bereich markieren
2. und dann ein Makro nur für diesen Bereich ausführen.
Erreichen möchte ich, dass leere Zellen mit dem Wert aus der darüber gelegenen Zelle gefüllt werden. Als Beispiel folgendes :
Ausgangsbasis
Name1 Vorname1 Hobby1
Hobby2
Hobby3
Name2 Vorname2 Hobby1
Hobby4
Name2 Vorname3 Hobby1
Hobby4
Ergebnis nach Makro
Name1 Vorname1 Hobby1
Name1 Vorname1 Hobby2
Name1 Vorname1 Hobby3
Name2 Vorname2 Hobby1
Name2 Vorname2 Hobby4
Name2 Vorname3 Hobby1
Name2 Vorname3 Hobby4
Gefunden habe ich dazu folgendes Makro:

Sub auffuellen()
Dim zz#, sp%
Application.ScreenUpdating = False
sp = Selection.Column
For zz = 2 To 70
With ActiveSheet
If .Cells(zz, sp) = "" Then
.Cells(zz - 1, sp).Copy
.Paste Destination:=.Cells(zz, sp)
End If
End With
Next
Application.ScreenUpdating = True
End Sub

Das funktioniert auch soweit ganz gut, da es mir für die aktuelle Spalte die Werte bis Zeile 70 füllt. Ich hätte allerdings gerne, dass es gleich mehrere Spalten abarbeitet und ich nicht ein festes Zeilenende vorgeben muss, sondern die Markierung als Bereich gewählt wird. Optimum wäre, wenn ich nur die gewünschten Spalten markieren würde und dann die Zellen in den markierten Spalten bis zu derjenigen Zeile gefüllt würden, in der letztmalig in irgendeiner Zelle des gesamten Blattes (nicht nur innerhalb der Markierung) ein Wert steht.
Hat da jemand einen Vorschlag ?
Danke und Gruß, Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro nur auf markierten Bereich anwenden
10.03.2006 15:57:25
IngGi
Hallo Stefan,
so müsste es gehen:

Sub Auffuellen()
Dim rng As Range
For Each rng In Selection
If rng.Row > Selection.Row And rng = "" Then rng = rng.Offset(-1, 0)
Next 'rng
End Sub
Gruß Ingolf
AW: Makro nur auf markierten Bereich anwenden
10.03.2006 17:22:55
SKO
Hallo,
besten Dank IngGI, funktioniert super. Ich sag nur keep it simple.
Gruß, Stefan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro nur auf markierten Bereich anwenden


Schritt-für-Schritt-Anleitung

Um ein Makro nur auf den markierten Bereich in Excel anzuwenden und leere Zellen mit dem Wert der darüber liegenden Zelle zu füllen, folge diesen Schritten:

  1. Bereich markieren: Öffne deine Excel-Tabelle und markiere den Bereich, den du bearbeiten möchtest.
  2. Makro einfügen:
    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. VBA-Code einfügen: Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:

    Sub Auffuellen()
       Dim rng As Range
       For Each rng In Selection
           If rng.Row > Selection.Row And rng = "" Then rng = rng.Offset(-1, 0)
       Next rng
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle das Auffuellen-Makro aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht für die gesamte Spalte.

    • Lösung: Stelle sicher, dass du den gewünschten Bereich korrekt markiert hast, bevor du das Makro ausführst.
  • Fehler: Leere Zellen werden nicht gefüllt.

    • Lösung: Überprüfe, ob die Zellen über den leeren Zellen tatsächlich Werte enthalten, die kopiert werden können.

Alternative Methoden

Wenn du eine Alternative zu einem Makro suchst, kannst du auch die Funktion "SVERWEIS" oder "WENN" in Kombination mit "VERGLEICH" verwenden, um leere Zellen zu füllen. Diese Methode ist jedoch weniger flexibel, wenn es darum geht, mehrere Spalten gleichzeitig zu bearbeiten.


Praktische Beispiele

Hier ist ein praktisches Beispiel, um das Makro zu verdeutlichen:

  1. Ausgangsdaten:

    A B C
    Name1 Vorname1 Hobby1
    Hobby2
    Hobby3
    Name2 Vorname2 Hobby1
    Hobby4
  2. Markierung: Markiere die Zellen in den Spalten A, B und C, die du füllen möchtest.

  3. Makro ausführen: Nach der Ausführung wird das Ergebnis so aussehen:

    A B C
    Name1 Vorname1 Hobby1
    Name1 Vorname1 Hobby2
    Name1 Vorname1 Hobby3
    Name2 Vorname2 Hobby1
    Name2 Vorname2 Hobby4

Tipps für Profis

  • Nutze Strg + Z, um Änderungen rückgängig zu machen, falls das Makro nicht das gewünschte Ergebnis liefert.
  • Experimentiere mit dem VBA-Code, um zusätzliche Funktionen hinzuzufügen, wie z.B. das Füllen von Zellen basierend auf bestimmten Bedingungen.
  • Speichere deine Arbeitsmappe im .xlsm Format, um die Makros zu behalten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für andere Bereiche anpassen?
Du kannst die Selection im VBA-Code durch einen spezifischen Bereich ersetzen, z.B. Range("A1:C70"), um das Makro auf einen festen Bereich anzuwenden.

2. Funktioniert das Makro in Excel 365?
Ja, das Makro ist mit Excel 365 und anderen neueren Versionen kompatibel. Stelle sicher, dass Makros in deinen Excel-Einstellungen aktiviert sind.

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