Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
248to252
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
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren und Zellen einfügen

Kopieren und Zellen einfügen
02.05.2003 21:27:05
christian
Hi

ich möchte einen Zellbereich kopieren und anschließend sollen die Kopie direkt neben diesem Bereich eingefügt werden. Dabei sollen die vorhandenen Daten nach rechts verschoben werden. Wichtig ist, dass unter dem Bereich Daten sind, die nicht verschoben bzw. kopiert werden dürfen.

Mein Code:
Range(Cells(1, i - 4).Address, Cells(LV, i - 3)).Copy
Range(Cells(1, i - 2), Cells(LV, i - 1)).Insert Shift:=xlToRight
Application.CutCopyMode = False

Alternativ würde auch gehen, wenn der Bereich in die selbe Stelle eingefügt würde:

Range(Cells(1, i - 4).Address, Cells(LV, i - 3)).Select
Selection.Copy
Selection.Insert Shift:=xlToRight
Application.CutCopyMode = False

Das Programm steigt bei der Range-Zuweisung aus. Mit Laufzeilenfehler 1004

Kann mir jemand einen kleinen Tip geben????

Danke


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

Betreff
Datum
Anwender
Anzeige
Re: Kopieren und Zellen einfügen
02.05.2003 21:38:27
PeterW

Hallo Christian,

was steht denn in den Variablen i und LV?

Gruß
Peter

Re: Kopieren und Zellen einfügen
02.05.2003 21:51:57
Christian

Hallo Peter

i ist die Spaltennummer
LV ist die Zeilennummer

Sie werden vorher ermittelt. Den Code dafür füge ich an.
Wenn ich das ganze über Columns ansteuere, dann funktioniert es aber wie gesagt, alles unterhalb von LV muß erhaltenbleiben.

Sub NeueAR()
Dim AnzahlAR
Dim Formel1, Formel2
Dim j, i
Dim LZ, LS, LV
Dim ws As Worksheet

Set ws = ActiveWorkbook.ActiveSheet

'Application.ScreenUpdating = False 'Neu Berechnung des Bildschirmes wird ausgeschaltet

i = 10

LS = ws.Cells(6, ws.Columns.count).End(xlToLeft).Column 'liefert die letzte belegte Spalte der Tabelle (bezogen auf Zeile 6)
LZ = ws.Cells(Rows.count, 6).End(xlUp).Row 'liefert die letzte belegte Zeile der Tabelle

For j = LS To 7 Step -1
If Cells(j, 7).Value = "brutto Gesamtsumme des Gewerkes abzgl. Skonto:" Then
LV = j
End If
Next j

For i = LS To 20 Step -1
If Cells(4, i) = "Gesamtübersicht" Then 'suchet gesamtübersicht
Range(Cells(1, i - 4).Address, Cells(LV, i - 3)).Select 'Kopiert lezte AR
Selection.Copy
Selection.Insert Shift:=xlToRight
'Range(Cells(1, i - 2), Cells(LV, i - 1)).Insert Shift:=xlToRight 'Fügt Kopie vor der Schlußrechnung ein
Application.CutCopyMode = False

End Sub


Anzeige
Hallo Peter
02.05.2003 21:57:15
Christian

Hi Peter

habe leider die falsche Version kopiert hier die richtige:

Sub NeueAR()
Dim AnzahlAR
Dim Formel1, Formel2
Dim j, i
Dim LZ, LS, LV
Dim ws As Worksheet

Set ws = ActiveWorkbook.ActiveSheet

'Application.ScreenUpdating = False 'Neu Berechnung des Bildschirmes wird ausgeschaltet

i = 10

LS = ws.Cells(6, ws.Columns.count).End(xlToLeft).Column 'liefert die letzte belegte Spalte der Tabelle (bezogen auf Zeile 6)
LZ = ws.Cells(Rows.count, 6).End(xlUp).Row 'liefert die letzte belegte Zeile der Tabelle

For j = LS To 7 Step -1
If Cells(j, 7).Value = "brutto Gesamtsumme des Gewerkes abzgl. Skonto:" Then
LV = j
End If
Next j

For i = LS To 20 Step -1
If Cells(4, i) = "Gesamtübersicht" Then 'suchet gesamtübersicht
Range(Cells(1, i - 4), Cells(LV, i - 3)).Select 'Kopiert lezte AR
Selection.Copy
Selection.Insert Shift:=xlToRight
'Range(Cells(1, i - 2), Cells(LV, i - 1)).Insert Shift:=xlToRight 'Fügt Kopie vor der Schlußrechnung ein
Application.CutCopyMode = False
End If
Next i
End Sub

Anzeige
Re: Hallo Peter
02.05.2003 22:07:16
Christian

Habe mittlerweise herausgefunden, dass die Variable LV leer bleibt. Jedoch sehe ich in der Zuweisung der Variablen keinen Fehler.

Naja werde mal noch etwas weiter herrumprobieren.


Re: Hallo Peter
02.05.2003 22:08:24
PeterW

Hallo Christian,

wo tritt denn in der letzten geposteten Version ein Fehler auf? (Bin zu faul, die Tabelle nachzubauen :-))

Gruß
Peter

Re: Hallo Peter
02.05.2003 22:12:23
PeterW

Hallo Christian,

wenn in dieser Schleife die Bedingung nicht erfüllt wird bleibt LV leer

For j = LS To 7 Step -1
If Cells(j, 7).Value = "brutto Gesamtsumme des Gewerkes abzgl. Skonto:" Then
LV = j
End If
Next j

Gruß
Peter

Anzeige
Re: Hallo Peter
02.05.2003 22:17:23
christian

Also Felhermeldungen bekomme ich mittlerweile nicht mehr. Ich habe den Fehler insofern eingrenzen können, dass ich weis, dass es an der Zuweisung von LV liegt.

For j = LZ To 7 Step -1
If Cells(j, 7).Value = "brutto Gesamtsumme des Gewerkes abzgl. Skonto:" Then
LV = j
End If
Next j

Ich verstehe nur nicht, warum der Wert nicht zu gewiesen wird. Denn in einer Zelle der Spalte G steht nun mal der SuchText. Vielleicht ist der Text einfach zu lang oder so.

Fehler gefunden
02.05.2003 22:21:25
Christian

Hi Peter

Ist ein sau dummer Fehler. Habe nämlich die Zeilen LZ und Spaltenzähler LS vertauscht.

For j = LZ To 7 Step -1
If Cells(j, 7).Value = "brutto Gesamtsumme des Gewerkes abzgl. Skonto:" Then
LV = j
End If
Next j

So läuft es.
Danke für Deine Bemühungen.

Anzeige
Re: Hallo Peter
02.05.2003 22:23:09
PeterW

Hallo Christian,

die Länge des Textes spielt hier keine Rolle, der Text muss lediglich EXAKT dem Zellinhalt entsprechen, ein Leerzeichen am Anfang oder Ende lassen den Vergleich scheitern.

Gruß
Peter

Re: Fehler gefunden
02.05.2003 22:28:31
PeterW

Hallo Christian,

na prima. :-)

Bei der Gelegenheit ein Tipp: gib Deinen Variablen aussagekräftige Namen, dann fallen Dir Fehler beim Debuggen eher auf. Vielleicht wirfst Du auch mal einen Blick in die XLFAQ, da gibt Hans einige sehr gute Hinweise zu Variablen.

Gruß
Peter

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige