Clever-Excel-Forum

Normale Version: VBA Makro Befehl Range
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe mir ein Makro geschrieben, dass alle von "D3:AB1500" auswählt, kopiert und in eine neuen Reiter einfügt.

Gerne würde ich es so haben, dass er ab Zelle D3 alle Werte nach rechts und nach unten auswählt.

Hatte es mit "End(xldown)" und "End(xltoright)" ausprobiert.

Hier mein Makro:


Code:
SUB Kopieren()
   Sheets(Sheet1).Select
   Range("D3:AB1500").Copy
   Sheets(Sheet2).Select
   Range("C3").PasteSpecial xlPasteValues
    Application.Calculate
End Sub

Danke und Grüße

EDIT

Ich habe jetzt mal was ausprobiert und würde noch um Feedback bitten. Bisher klappt es nämlich.

Zitat:Sub Kopieren()

    Sheets(Sheet1).Select
    Range("D3", Range("D3").End(xlToRight).End(xlDown)).Select
    Selection.Copy
    Sheets(Sheet2).Select
    Range("C3").PasteSpecial xlPasteValues
    Application.Calculate
End Sub
Hallo,

wenn sich links von D3 und oberhalb nichts befindet, könntest Du es auch mal so versuchen.

Code:
Range("D3")CurrentRegion..Copy
Hallo

dein Code setzt bitte voraus das in dem Bereich den du mit xlToRight und xlDown abfaehrst sich immer Daten befinden. Wenn es dort eine leere Spalte oder Zeile befindet klappt es nicht mehr!  Man beachte die Feinheiten.  Ich habe den Code etwas eleganter geschrieben.  Hole mir die End Adresse lieber in eine Variable.  Das ist bei Makrofehler, wenn es nicht korrekt laeuft, leichter zu prüfen!  z.B. MsgBox EndAdr  Ausserdem selektiere ich kein Blatt.

mfg  Gast 123    


Code:
Option Explicit      '25.10.2016   Gast 123   Clever Forum

Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Dim EndAdr As String


Sub Kopieren()
Set Sht1 = Sheets(Sheet1)
Set Sht2 = Sheets(Sheet2)
   'End Adresse ermitteln
   EndAdr = Sht1("D3").End(xlToRight).End(xlDown).Address
   'Kopie über Set Namen  (viel eleganter, ohne Select)
   Sht1.Range("D3", EndAdr).Copy
   Sht2.Range("C3").PasteSpecial xlPasteValues
   Application.CutCopyMode = False
   Application.Calculate
End Sub