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

Forumthread: Werte nach unten kopieren ?

Werte nach unten kopieren ?
23.01.2008 00:06:54
Selma
Hallo Leute,
ich habe eine Frage. Wie kann ich per VBA folgendes erreichen:
Ich möchte in Spalte O die Zelleninhalte angefangen von Zeile 1 nach unten kopieren (siehe Beispiele).
Der Zelleninhalt aus Spalte O soll nach unten solange kopiert werden bis die eine leere Zelle in Spalte N kommt. Im Beispiel ist dies am besten zu sehen.
Beispiel (vorher):
Beispiel (nachher):
Vielen Dank im Voraus.
Liebe Grüße,
Selma

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte nach unten kopieren ?
23.01.2008 00:38:00
fcs
Hallo Selma,
mit folgendem Makro wird das Auffüllen durchgeführt. Die Startzeile in der For-Zeile muss du ggf. noch anpassen.
Gruß
Franz

Sub DatumAuffuellen()
Dim wks As Worksheet, Zeile As Long, Zelle As Range
Set wks = ActiveSheet
With wks
For Zeile = 1 To .Cells(.Rows.Count, 14).End(xlUp).Row
If Not IsEmpty(.Cells(Zeile, 15)) Then 'Datum ist eingetragen
Set Zelle = .Cells(Zeile, 15) 'Zelle mit Datum merken
Else
If .Cells(Zeile, 14)  "" Then 'Spalte N enthält Text
.Cells(Zeile, 15).Value = Zelle.Value
End If
End If
Next
End With
End Sub


Anzeige
AW: Werte nach unten kopieren ?
23.01.2008 01:06:00
Daniel
Hi
alternativ kannst du auch das hier verwenden.

Sub test2()
With Range("O2:O" & Range("N65536").End(xlUp).Row)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=if(RC[-1]="""","""",R[-1]C)"
.Formula = .Value
.NumberFormat = "dd.mm.yyyy"
End With
End Sub


Gruß, Daniel

Anzeige
Danke fsc, danke Daniel !
23.01.2008 11:04:03
Selma
Danke fsc, danke Daniel !
LG
Selma
;

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

Werte in Excel nach unten kopieren mit VBA


Schritt-für-Schritt-Anleitung

Um Werte in Excel nach unten zu kopieren, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung, wie Du das machen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub DatumAuffuellen()
       Dim wks As Worksheet, Zeile As Long, Zelle As Range
       Set wks = ActiveSheet
       With wks
           For Zeile = 1 To .Cells(.Rows.Count, 14).End(xlUp).Row
               If Not IsEmpty(.Cells(Zeile, 15)) Then 'Datum ist eingetragen
                   Set Zelle = .Cells(Zeile, 15) 'Zelle mit Datum merken
               Else
                   If .Cells(Zeile, 14) <> "" Then 'Spalte N enthält Text
                       .Cells(Zeile, 15).Value = Zelle.Value
                   End If
               End If
           Next
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, um das Makro auszuführen, und wähle DatumAuffuellen aus.


Häufige Fehler und Lösungen

  • Fehler: „Komponente kann nicht gefunden werden“

    • Lösung: Stelle sicher, dass in der VBA-Umgebung keine fehlenden Referenzen vorhanden sind. Gehe zu Extras > Verweise und überprüfe die Liste.
  • Fehler: „Typen unverträglich“

    • Lösung: Überprüfe, ob die Zellreferenzen korrekt sind und dass Du die richtigen Datentypen verwendest.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Funktion „Ausfüllen“ in Excel nutzen:

  1. Wähle die Zelle in Spalte O aus, die Du kopieren möchtest.
  2. Ziehe das Ausfüllkästchen (kleines Quadrat in der unteren rechten Ecke der Zelle) nach unten, um die Zellen zu füllen.
  3. Halte die STRG-Taste gedrückt, während Du das Ausfüllkästchen ziehst, um die Werte nur zu kopieren, wenn die entsprechende Zelle in Spalte N nicht leer ist.

Zusätzlich kannst Du auch die Funktion =WENN() in einer neuen Spalte verwenden, um die Daten dynamisch zu befüllen.


Praktische Beispiele

Hier ist ein Beispiel, wie Du Werte per VBA in Excel nach unten kopieren kannst:

Sub test2()
    With Range("O2:O" & Range("N65536").End(xlUp).Row)
        .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=if(RC[-1]="""","""",R[-1]C)"
        .Formula = .Value
        .NumberFormat = "dd.mm.yyyy"
    End With
End Sub

In diesem Beispiel wird eine Formel verwendet, um die leeren Zellen in Spalte O zu füllen, basierend auf den Werten der vorherigen Zeile.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste Dein Makro immer in einer Kopie Deiner Datei, um Datenverluste zu vermeiden.
  • Halte Deine VBA-Codes gut dokumentiert, damit Du sie später leichter verstehen oder anpassen kannst.

FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch ausführen lassen? Du kannst das Makro mit einem Button verknüpfen oder es beim Öffnen der Datei automatisch ausführen lassen, indem Du den Workbook_Open-Ereignishandler verwendest.

2. Funktioniert das auch in Excel Online? Leider unterstützt Excel Online keine VBA-Makros. Du musst die Desktop-Version von Excel verwenden.

3. Was mache ich, wenn die Zellen nicht korrekt gefüllt werden? Überprüfe, ob die Zellreferenzen im Makro korrekt sind und dass die Spalte N die erwarteten Werte 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