Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Makro Befehl Range
#1
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
Antworten Top
#2
Hallo,

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

Code:
Range("D3")CurrentRegion..Copy
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste