MS EXCEL VBA copy -> destination

AwesomSTUFF

Rear Admiral
Registriert
Juli 2011
Beiträge
5.330
Moin,

hab ein kleines Problem an dem ich mich gerade festgefranst habe.
Wir haben einen Schichtplan in EXCEL. Da die Leute ja so "toll" Excel können und das auch zeigen wollen, anstatt mich (hab die Datei erstellt) Mal zu fragen haben sie die Datei zerschossen - weil Blattschutz geht ja Mal gar nicht.

Nunja

Also ich kopiere die jeweils aktuelle Woche aus einer Tabelle mit allen 52 Wochen in ein gesondertes Worksheet damit die jede Woche ihre Schichtpläne gesondert einsehen und ausdrucken können.

Bisher hat das so auch funktioniert
Code:
Worksheets("Übersicht").Range("Names").Copy Destination:=Range("SchNames")

Nun hat man aber die Quelle (Names) inzwischen erweitert und entsprechend hat die mehr Zeilen.
Ich könnte es mir einfach machen und temporär wäre damit wohl auch geholfen einfach auch den Bereich "SchNames" passend zu erweitern. Aber das hält solange, bis jemand wieder Mitarbeiter löscht oder hinzufügt.

Ich hab es jetzt- sehr einfach gedacht zuerst so versucht
Code:
Range("Names").Select
Rg = Range("Names").End(xlDown).Rows.Count
Worksheets("Übersicht").Range("Names").Copy Destination:=Worksheets("Schichtplan").Range("A4:C" & Rg)

funzt natürlich nicht.
Will also die Anzahl der Zeilen in "Names" ermitteln (Rg) und dann entsprechend das kopierte in den Bereich von A4 bis C(Rg) einfügen.


Hülfö....
 
Bin zwar mehr in vbs unterwegs und kann grad nur 2 meiner 5 Gehirnzellen freimachen ;), aber das Range Argument für die Destination kann man nicht mit "&" in der von dir beschriebenen Form bilden. Oder ich vertue mich da grad auch ...
 
Doch das sollte schon gehen, aber warum überhaupt der Aufwand? Du kannst auch einfach nur die Zelle oben links als Destination angeben, also in deinem Beispiel A4 oder .cell(4,1).
Wenn's nicht klappt von Bescheid.
 
  • Gefällt mir
Reaktionen: Demon_666 und AwesomSTUFF
Doch, doch das mit der "&" Verknüpfung haut hin.
Ich habs jetzt tatsächlich so gemacht, dass ich nur die obere linke Zelle angebe, dann muss ich auch nix zählen.
Den Ansatz hatte ich gestern schon einmal, aber hab ich verworfen weil ich dachte es geht nicht. Hatte aber woanders im Code nen Fehler drin weswegen das gespackt hatte.
Danke vielmals es funzt jetzt:
Code:
Worksheets("Übersicht").Range("Names").Copy Destination:=Worksheets("Schichtplan").Range("A4")
 
Hallo,

dieses Makro öffnet die Datei und kopiert mir die Zellen A10-NJ26.
Wie kann man das ändern, das hier die Werte kopiert werden, anstatt Verlinkungen zu den Zellen erzeugen.
Mir reicht es, nur die Werte zu kopieren bzw. als Wert einfügen.

Code:
Sub Test()
  Dim Wb As Workbook
  Dim Dest As Range
  Dim Fname As String
  Fname = "Z:\Urlaubsplan.xlsx"

 
  Set Dest = Worksheets("Test").Range("A1")
  Set Wb = Workbooks.Open(Fname, False, True)
  Wb.Worksheets("Verbindung").Range("A10:NJ26").Copy Dest
  Wb.Close
End Sub
 
Zurück
Oben