Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
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

copy paste

copy paste
27.05.2014 15:58:54
Herbert Greim

Hallo zusammen,
habe folgende VBA Anweisung
Option Explicit

Sub copy3()
Dim Rng2Copy As Range, Rng2Paste As Range
Dim aWerte()
Dim number As Variant
number = Range("I3")
Select Case number
Case 1
Set Rng2Copy = Sheets("AWH").Range("F15:F54")
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
Case 2
Set Rng2Copy = Sheets("AWH").Range("g15:g54")
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
Case 3
Set Rng2Copy = Sheets("AWH").Range("h15:h54")
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
Case 4
Set Rng2Copy = Sheets("AWH").Range("i15:i54")
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
End Select
End Sub

diese Case Anwendung müsste theoretisch 365 x geschrieben werden, da sich der Wert von Rng2Copy _
immer ändert. gibt es dafür eine For Each Schleife, die den RangeWert einen Schritt erhöht.
Vielen Dank im Voraus
Herby

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: copy paste
27.05.2014 16:04:34
Hajo_Zi
Hallo Herby,
ohne Prüfung Number
Sub copy3()
Dim Rng2Copy As Range, Rng2Paste As Range
Dim aWerte()
Dim number As Variant
number = Range("I3")
With Sheets("AWH")
Set Rng2Copy = .Range(.Cells(15, number + 5), .Cells(54, number + 5))
End With
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()

AW: copy paste
27.05.2014 16:07:06
Herbert Greim
Hallo und Danke
werde das direkt mal ausprobieren
Gruß
Herby

AW: copy paste
27.05.2014 16:13:40
Herbert Greim
so da bin ich nochmal
und es funktioniert prima und Danke.
jetzt hätte ich noch eine Frage.
geht dies auch wenn die Tabelle(AWH) geschlossen ist und in einem anderen Laufwerkspfad liegt ?
Gruß
Herby

Anzeige
AW: copy paste
27.05.2014 16:17:00
Hajo_Zi
Hallo Herby,
set geht nur bei geöffneten.
Gruß Hajo

AW: copy paste
27.05.2014 16:11:02
Klaus M.vdT.
Hallo Herby,
das könnte klappen (ungetestet, kenne ja deine Datei nicht) und ist ganz ohne Schleife:
Sub copy3()
Dim Rng2Copy As Range, Rng2Paste As Range
Dim aWerte()
Dim number As Variant
number = Range("I3")
Set Rng2Copy = Sheets("AWH").Range(Cells(15, 5 + number), Cells(54, 5 + number))
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
End Sub
Oder etwas umständlicher, dafür vielleicht etwas verständlicher, mit OFFSET:
Sub copy3()
Dim Rng2Copy As Range, Rng2Paste As Range
Dim aWerte()
Dim number As Variant
number = Range("I3")
Set Rng2Copy = Sheets("AWH").Range("E15:E54").Offset(0, number)
Set Rng2Paste = Sheets("Mo").Range("L9:L48")
aWerte() = Rng2Copy
Rng2Paste = aWerte()
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: copy paste
27.05.2014 16:16:24
Herbert Greim
Danke Klaus
auch diese Variante sollte gehen
Gruß
herby

AW: copy paste
27.05.2014 16:20:25
EtoPHG
Hallo Herby,
Dein Code lässt sich auf
Sub copy3()
With ThisWorkbook.Worksheets("AWH")
.Range(.Cells(15, 5 + .Cells(3, 9).Value), .Cells(54, 5 + .Cells(3, 9).Value)).Copy
ThisWorkbook.Worksheets("Mo").Cells(9, 12).PasteSpecial Paste:=xlPasteValues
End With
End Sub
reduzieren, wenn sich "I3" im Blatt "AWH" befindet. Sonst melde dich!
Du willst anscheinend ums Verre...n VBA!
Dann werd glücklich damit
Gruess Hansueli

AW: copy paste
27.05.2014 16:32:56
Herbert Greim
Hi,
geht mir nicht so um VBA da diese tabelle auch jemand anderes benutzt kann es sehr schnell zum Löschfaktor kommen.
I3 liegt in Tabelle(MO) und dort gebe ich über DataPicker das Datum ein.
Über Deine Anweisung soll er dann in Tabelle(AWH) nach Datum suchen und die besagt Spalte kopieren.
Gruß
Herby

Anzeige
AW: copy paste
27.05.2014 16:37:04
EtoPHG
Hallo Herby,
Wenn I3 in "Mo" dann so:
Sub copy3()
With ThisWorkbook.Worksheets("AWH")
.Range(.Cells(15, 5 + ThisWorkbook.Worksheets("Mo").Cells(3, 9).Value), _
.Cells(54, 5 + ThisWorkbook.Worksheets("Mo").Cells(3, 9).Value)).Copy
ThisWorkbook.Worksheets("Mo").Cells(9, 12).PasteSpecial Paste:=xlPasteValues
End With
End Sub
Gruess Hansueli

AW: copy paste
27.05.2014 16:40:41
Herbert Greim
Hallo Hansueli,
werd es ausprobieren
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige