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

Forumthread: dynamischen Bereich kopieren

dynamischen Bereich kopieren
26.04.2007 15:04:00
Joachim
Hallo,
irgendwie steh ich auf'm Schlauch. Warum funktioniert das Makro nicht.
irow = Sheets("gebaeude").Cells(65000, 1).End(xlUp).Offset(1, 0).Row - 1
Sheets("gebaeude").Range(Cells(2, 2), Cells(7, irow)).Select
Selection.Copy
Sheets("Plottliste").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
irow gibt mir die letzte gefüllte Zeilennummer zurück, dann will ich den Bereich B2:G & irow markieren und in das andere Blatt ab B2 kopieren (Werte einfügen).
Laufzeitfehler 1004
Gruss
Joachim

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamischen Bereich kopieren
26.04.2007 15:39:00
Uwe
Hallo Joachim,
teste mal so:

irow = Sheets("gebaeude").Cells(65000, 1).End(xlUp).Row
Sheets("gebaeude").Range(Cells(2, 2), Cells(7, irow)).Copy Sheets("Plottliste").Range("B2")

Gruß Uwe

AW: dynamischen Bereich kopieren
26.04.2007 15:48:00
Joachim
Hallo Uwe,
auch hier Laufzeitfehler 1004!!

Anzeige
AW: dynamischen Bereich kopieren
26.04.2007 19:11:00
Kurt
With Sheets("gebaeude")
irow = .Cells(65000, 1).End(xlUp).Row
.Range(.Cells(2, 2), .Cells(7, irow)).Copy Sheets("Plottliste").Range("B2")
End With
mfg Kurt

AW: dynamischen Bereich kopieren
27.04.2007 08:21:01
Joachim
Hallo Kurt,
auch hier Laufzeitfehler 1004
Gruss
Joachim

AW: dynamischen Bereich kopieren
27.04.2007 14:38:56
Kurt
Hi,
lad mal ein kleines Beispiel hoch.
Vermutlich verbundene Zellen?
mfg Kurt

Anzeige
AW: dynamischen Bereich kopieren
27.04.2007 15:49:00
Joachim
Hallo Kurt,
hab es anders gelöst (komplette Spalten markieren und kopieren, nicht Bereich).
Aber ich bin drauf gekommen, dass bei cells die Reihenfolge vertauscht ist, also B7 ist nicht cells(2, 7) sondern cells(7, 2).
Vielleicht lag's daran.
Jedenfalls hat's sich erledigt.
Gruss
Joachim
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamischen Bereich in Excel kopieren


Schritt-für-Schritt-Anleitung

Um einen dynamischen Bereich in Excel zu kopieren, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Modul einfügen" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub DynamischenBereichKopieren()
       Dim irow As Long
       With Sheets("gebaeude")
           irow = .Cells(65000, 1).End(xlUp).Row
           .Range(.Cells(2, 2), .Cells(7, irow)).Copy Sheets("Plottliste").Range("B2")
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Dieser Code verwendet die Funktion End(xlUp), um die letzte gefüllte Zeile in der Spalte A zu bestimmen und kopiert dann den gewünschten Bereich.


Häufige Fehler und Lösungen

Laufzeitfehler 1004

  • Ursache: Dieser Fehler tritt häufig auf, wenn die angegebenen Zellen außerhalb des gültigen Bereichs liegen.
  • Lösung: Stelle sicher, dass der Bereich, den du kopieren möchtest, tatsächlich existiert. Überprüfe auch, dass du die richtige Reihenfolge der Zellen in Cells verwendest. (z.B. Cells(7, 2) für B7)

Alternative Methoden

  1. Manuelles Kopieren: Wenn du keinen VBA-Code verwenden möchtest, kannst du den gewünschten Bereich einfach manuell auswählen und mit STRG + C kopieren. Danach gehst du zu dem Zielblatt und fügst mit STRG + V ein.

  2. Formeln verwenden: Du kannst auch Formeln nutzen, um Daten dynamisch zu verknüpfen, zum Beispiel mit =INDIREKT() oder =OFFSET(), um Bereiche dynamisch zu gestalten.


Praktische Beispiele

  • Beispiel 1: Wenn du die letzten 5 Zeilen aus einem dynamischen Bereich in eine andere Tabelle kopieren möchtest, kannst du den Code wie folgt anpassen:

    Dim irow As Long
    With Sheets("gebaeude")
       irow = .Cells(65000, 1).End(xlUp).Row
       .Range(.Cells(irow - 4, 2), .Cells(irow, 2)).Copy Sheets("Plottliste").Range("B2")
    End With
  • Beispiel 2: Um eine gesamte Spalte zu kopieren, kannst du einfach .Range("B:B").Copy verwenden.


Tipps für Profis

  • Verbundene Zellen: Achte darauf, dass keine verbundenen Zellen im zu kopierenden Bereich sind, da dies zu Fehlern führen kann.
  • Verwendung von Variablen: Nutze Variablen für die Zeilen- und Spaltennummern, um deinen Code flexibler zu gestalten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um Laufzeitfehler elegant abzufangen.

FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht? Überprüfe, ob die angegebenen Arbeitsblätter korrekt benannt sind und ob der Bereich, den du kopieren möchtest, tatsächlich existiert.

2. Wie kann ich einen dynamischen Bereich ohne VBA kopieren? Du kannst den Bereich manuell kopieren oder Formeln wie INDEX() oder OFFSET() verwenden, um dynamisch auf die gewünschten Zellen zuzugreifen.

3. Was ist der Unterschied zwischen Copy und PasteSpecial? Copy kopiert die gesamte Formatierung und den Inhalt, während PasteSpecial dir erlaubt, nur Werte oder Formate einzufügen.

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