Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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

Ausschneiden + einfügen

Ausschneiden + einfügen
11.12.2018 15:41:27
Schorsch
Liebe Mitglieder, ich bin glaube ich zu b....
warum funktioniert der code nicht?
Ich möchte den Bereich "A24:D55" ausschneiden und dann in "A27" einfügen, und das in jedem Worksheet von 4 bis 88
Danke für einen Tipp, ich bin leider ein ziemlicher Anfänger VBA
Sub Vorbereiten2019()
Dim wbook As Workbook
Set wbook = ThisWorkbook
Dim i As Long
Dim WS_Count As Integer
WS_Count = ThisWorkbook.Worksheets.Count
Application.Calculation = xlCalculationManual
For i = 4 To WS_Count - 2
With wbook.Worksheets(i)
Range("A24:D55").Cut Destination:=Range("a27:d58")
Application.CutCopyMode = False
End With
Next i
Application.Calculation = xlCalculationAutomatic
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Referenzierung?
11.12.2018 15:46:14
Werner
Hallo,
mach mal jeweils vor dem Range einen Punkt.
.Range(....)
Gruß Werner
AW: Referenzierung? Danke - eine Frage
12.12.2018 09:27:41
Schorsch
...Werner: wo kann ich das Thema Referenzierung mal grundsätzlich nachlesen, damit habe ich immer Probleme, heisst mein Kenntnisstand muss dringend verbessert werden, danke. Grüße
AW: Referenzierung? Danke - eine Frage
12.12.2018 10:17:16
Werner
Hallo,
ist eigentlich nicht so kompliziert.
Um sauber auf ein bestimmtes Blatt zu referenzieren mußt du vor jedem Range-Objekt (Range, Cells, Rows, Columns) jeweils das entsprechende Blatt mit angeben.
Das ist für dein Beispiel jetzt nicht besonders schwierig:
Worksheets("Tabelle1").Range("A24:D55").Cut Destination:=Worksheets("Tabelle1").Range("a27:d58")

Somit liegen dein Quellbereich und dein Zielbereich auf dem Blatt Tabelle1
Schreibst du z.B.:
Worksheets("Tabelle1").Range("A24:D55").Cut Destination:=Range("a27:d58")

dann ist dein Quellbereich auf Tabelle1, dein Zielbereich aber (da ohne Blatt vor Range) auf dem gerade aktiven Tabellenblatt. Das kann, muss aber nicht das selbe Blatt sein. Wenn in diesem Beispiel gerade Tabelle2 das aktive Blatt ist, dann wäre dein Quellbereich auf Tabelle1, dein Zielbereich aber auf Tabelle2.
Alleine vom Schreibaufwand wird das Ganze dann aufwändig, wenn du deine Bereiche in der Range(cells(... schreibweise angibst.
Das wäre für dein Beispiel mit korrekter Referenzierung beider Bereiche auf Tabelle1 dann:
Worksheets("Tabelle1").Range(Worksheets("Tabelle1").Cells(24, 1), Worksheets("Tabelle1").Cells(55, 4)).Cut Destination:=Worksheets("Tabelle1").Cells(27, 1)

Um das zu kürzen kann man die With - End With Klammerung (wie du das hast) verwenden.
Um dabei dann aber den Range auf das im With angegebene Blatt zu referenzieren mußt du vor jedem Range-Objekt (Range, Cells, Rows, Columns) einen Punkt setzen.
Das wäre in der Range(Cells(... schreibweise:
With Worksheets("Tabelle1")
.Range(.Cells(24, 1), .Cells(55, 4)).Cut Destination:=.Cells(27, 1)
End With

oder eben mit deiner schreibweise:
With Worksheets("Tabelle1")
.Range("A24:D55").Cut Destination:=.Range("A27")
End With
Übrigens reicht es wenn du für die Zielbereich die linke obere Zelle angibst.
Gruß Werner
Anzeige
AW: Ausschneiden + einfügen
11.12.2018 16:48:25
Hajo_Zi
und
Application.CutCopyMode = False
nach Next I

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Ausschneiden + einfügen: läuft..
12.12.2018 09:28:29
Schorsch
..und vielen Dank. Gruß
AW: Ausschneiden + einfügen: läuft..
12.12.2018 09:28:44
Schorsch
..und vielen Dank. Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige