Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich mit VBA kopieren

Bereich mit VBA kopieren
Climbi
Hallo,
wenn ich einen Bereich aus einem Blatt in ein anderes Blatt kopieren will, dann klappt folgendes:
Range(Cells(1, 1), Cells(10, 5)).Value = Worksheets(2).Range("A1:E10").Value
Leider funktioniert es nicht, wenn ich den Quellbereich auch mit Cells definiere, genau das benötige ich aber.
So geht es leider nicht.
Range(Cells(1, 1), Cells(10, 5)).Value = Worksheets(2).Range(Cells(1, 1), Cells(10, 5)).Value
Vielen Dank im Voraus.
Gruß Climbi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
probiers mit With ...
12.06.2012 08:09:04
Matthias
Hallo Climbi
Versuchs mal so
Sub Xcode()
With Worksheets(2)
Range(Cells(1, 1), Cells(10, 5)).Value = .Range(.Cells(1, 1), .Cells(10, 5)).Value
End With
End Sub
Gruß Matthias
AW: probiers mit With ...
12.06.2012 09:41:09
Climbi
Hallo Mathias,
Dein Code bringt keine Fehlermeldung, aber er bewirkt auch nichts.
Ich will ja den Inhalt vom Blatt 2 in das Blatt 1 kopieren.
Wenn ich vor Range den Tabellenblattname eingebe, dann erhalte ich bei der Ausführung einen Fehler.
AW: probiers mit With ...
12.06.2012 09:58:31
hary
Hallo Climbi
Kann es sein das Du das Makro aus einer anderen Tabelle startest bzw. Tabelle2 ist die aktive?
da:

Range(Cells(1, 1), Cells(10, 5)).Value

der Bereich im aktiven Blatt ist.
Weise beiden Bereichen mal den Blattnamen zu.

With Worksheets(2)
Worksheets(1).Range(Worksheets(1).Cells(1, 1), Worksheets(1).Cells(10, 5)).Value = .Range(. _
Cells(1, 1), .Cells(10, 5)).Value
End With

gruss hary
Anzeige
AW: probiers mit With ...
12.06.2012 10:23:50
Climbi
Hallo hary,
so geht es .
With Worksheets(2)
Worksheets(1).Range(Worksheets(1).Cells(1, 1), Worksheets(1).Cells(10, 5)).Value = .Range(. _
Cells(1, 1), .Cells(10, 5)).Value
End With
Ich denke mein Fehler war, dass ich Worksheets(1) vorher nur einmal verwendet habe
also:
Worksheets(1).Range(Cells(1, 1), Cells(10, 5).Value
Vielen vielen Dank
Gruß Climbi
keine Probleme ...
12.06.2012 10:24:36
Matthias
Hallo
Wer hat denn gesagt das Du vor Range den Blattnamen setzen sollst / musst ?
Du musst Dich nicht mal im Zielblatt befinden, nur der Code gehört in dieses Blatt
Und es sollte nicht Sheets(2) sein ;o)
Desweiteren bin ich im Bsp davon ausgegangen das nur Werte übertragen werden
Mit Formeln habe ich nicht geteset
https://www.herber.de/bbs/user/80526.xls
Gruß Matthias
Anzeige
die mE bessere Variante (ohne BlattIndex)
12.06.2012 11:44:18
Matthias
Hallo
Option Explicit
Sub Xcode3()          'Erklärung(Code in ein allgem. Modul)
'RegisterblattName und Index der Blätter spielen so keine Rolle mehr!
Dim wksQ As Worksheet ' Quelle
Dim wksZ As Worksheet ' Ziel
Set wksQ = Tabelle2   ' CodeName! der Tabelle
Set wksZ = Tabelle1   ' CodeName! der Tabelle
With wksQ
wksZ.Range(wksZ.Cells(1, 1), wksZ.Cells(10, 5)).Value = .Range(.Cells(1, 1), .Cells(10, 5)). _
Value
End With
End Sub
Nun ist es auch egal in welchem Blatt Du Dich gerade befindest.
Gruß Matthias
AW: die mE bessere Variante (ohne BlattIndex)
12.06.2012 11:53:16
Climbi
Hallo Matthias,
super, der letzte Code von Dir funktioniert und ich verstehe ihn sogar :-)
ich habe wieder was gelernt.
Vielen Dank nochmals. Gruß Climbi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige