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

Benutzten Bereich kopieren und einfügen

Benutzten Bereich kopieren und einfügen
Babs
Hallo zusammen,
ich bin noch neu hier und konnte leider auf das thema von Dieter
"Benutzten Bereich kopieren von Dieter vom 19.10.2009 17:43:03 " keinen Beitrag schreiben, geht irgendwie nicht !
wenn es doch möglich ist da was reinzuschreiben dann würd ich gerne wissen wie ?
Mein Problem bezieht sich auf diesen Code hier in dem Beitrag:
Set wks = ActiveSheet
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy
End With
das kopieren klappt einwandfrei, aber leider nicht das einfügen
nun will ich das in einem neuen sheet einfügen, welches auch geöffnet ist,
Windows("Test").Activate
Sheets(1).Activate
Bereich.Paste
das kopierte wird leider irgendwo im sheet eingefügt,
ich würd gern wie oben, das selber bestimmen, wo das eingefügt werden soll
.Range(.Cells(5, 5).paste so in der art, nur klappt es wieder mal nicht :)
wäre schön wenn mir jemand helfen kann
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 09:42:46
Rudi
Hallo,
Bereich.Copy Workbooks("Test.xls").Sheets(1).Cells(5,5)
Gruß
Rudi
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 09:43:46
Beverly
Hi Babs,
versuche es mal so:
    Dim wks As Worksheet
Dim Bereich As Range
Set wks = ActiveSheet
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy Workbooks("Test.xls").Worksheets("Tabelle1").Cells(5, 5)
End With
Set wks = Nothing
Set Bereich = Nothing



Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 09:53:56
Babs
oh vielen dank, das ging ja schnell :)
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 10:55:09
Babs
hallo, ich würd gern noch was wissen
jetzt hab ich das so:
Sub kopierebereich()
Dim wks As Worksheet
Dim Bereich As Range
Set wks = ActiveSheet
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy Workbooks("Test.xls").Sheets(1).Cells(5, 1)
Sheets(1).Activate
End With
Set wks = Nothing
Set Bereich = Nothing
'    With ActiveSheet
'   Application.ScreenUpdating = False
'   Tmp = Cells.Find("*", [A1], , , xlByRows, xlPrevious).row
'   For x = Tmp To 1 Step -1
'       Do While Application.CountA(Rows(x)) = False
'           Rows(x).EntireRow.Delete
'       Loop
'   Next x
'End With
End Sub
Die kommentierten Zeilen sollten eigentlich dafür sorgen dass nach dem kopiervorgang
die Leeren Zeilen gelöscht werden.
Leere Zeilen werden zwar gelöscht aber nur nicht auf Sheet1 in der testdatei
Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 11:27:02
Beverly
Hi Babs,
mit Sheets(1).Activate aktivierst du das Tabellenblatt in der Arbeitsmappe mit dem Code - du musst also vorher noch die Arbeitsmappe Test.xls aktivieren.
Wenn du nicht unbedingt in das Tabelleblatt der Arbeitsmappe Test wechseln willst, dann lasse die Zeile Sheets(1).Activate weg und schreibe anstelle von With ActiveSheet den Befehl: With Workbooks("Test.xls").Worksheets(1)


AW: Benutzten Bereich kopieren und einfügen
07.12.2009 12:01:09
Babs
hallo Beverly,
ich hab das jetzt so gemacht:
Sub kopierebereich()
Dim wks As Worksheet
Dim Bereich As Range
Set wks = ActiveSheet
Dim Zeile As Long
Dim ZeileMax As Long
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy Workbooks("Test.xls").Sheets(1).Cells(5, 1)
Sheets(1).Activate
End With
Set wks = Nothing
Set Bereich = Nothing
Workbooks("Test.xls").Worksheets("Sheet1").Activate
ZeileMax = ActiveSheet.UsedRange.Rows.Count
For Zeile = ZeileMax To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(Zeile)) = 0 Then
Rows(Zeile).Delete
End If
Next Zeile
End Sub
Sheet1 ist vorher leer hat jedoch eine bestimmte formatierung Zeilen und Spaltenbreite, damit man den kopierten bereich auch sehen kann und die texte nicht durcheinander sind
Es werden nun die leeren Zeilen im Sheet 1 gelöscht (ich merke das weil dort die zeilen ein wenig nach oben verrutscht sind), jedoch nicht im kopierten Bereich
woran liegts?
der kopierte bereich ist immer noch 1 zu 1 wie auf dem original, das original darf nicht verändert werden
nur im sheet1 sollten die leeren zeilen gelöscht sein,
hmm?
Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 12:51:17
Beverly
Hi Babs,
in meinem nachgebauten Beispiel funktionert der folgende Code fehlerlos:
Sub kopierebereich()
Dim wks As Worksheet
Dim Bereich As Range
Dim Zeile As Long
Dim ZeileMax As Long
Set wks = ActiveSheet
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy Workbooks("Mappe3").Sheets(1).Cells(5, 1)
End With
Set wks = Nothing
Set Bereich = Nothing
Workbooks("Mappe3").Worksheets(1).Activate
ZeileMax = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Zeile = ZeileMax To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(Zeile)) = 0 Then
Rows(Zeile).Delete
End If
Next Zeile
End Sub

bzw. der folgende (ohne Aktivieren der anderen Arbeitsmappe):
Sub kopierebereich()
Dim wks As Worksheet
Dim Bereich As Range
Dim Zeile As Long
Dim ZeileMax As Long
Set wks = ActiveSheet
With wks
Set Bereich = .Range(.Cells(5, 5), _
.Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, _
.Cells.SpecialCells(xlCellTypeLastCell).Column))
MsgBox "Der benutzte Bereich liegt in: " & Bereich.Address
Bereich.Copy Workbooks("Mappe3").Sheets(1).Cells(5, 1)
End With
Set wks = Nothing
Set Bereich = Nothing
With Workbooks("Mappe3").Worksheets(1)
ZeileMax = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Zeile = ZeileMax To 1 Step -1
If Application.WorksheetFunction.CountA(.Rows(Zeile)) = 0 Then
.Rows(Zeile).Delete
End If
Next Zeile
End With
End Sub



Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 13:32:02
Babs
hallo Beverly,
erstmal vielen dank dafür,
ich weiss jetzt wo das Problem ist, bei meiner Liste enthält eine Spalte ein DropDown Auswahlmenü und
die Spalte daneben eine Excel Formel mit Sverweis etc,
wenn ich diese beiden spalten rausnehme, funktioniert auch zeile löschen, nur darf ich diese nicht rausnehmen
gibt es eine mäglichkeit dieses zu umgehen?
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 13:37:20
Babs
PS: im dopdownmenü kann ich auch leerzeile anzeigen lassen so dass die zelle leer ist dementsprechend wird in der spalte wo die formel ist auch nichts drinne stehen da diese benachbarte zelle abhängig vom dropdownmenü ist, nur wenn etwas anderes("text") im dropdownmenü ausgewählt wird, wird in derbenachbarten zelle automatisch was stehen
Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 13:56:45
Babs
sorry, da ist noch was erwähnenswert
excel fragt mich jedesmal beim kopieren ob die vorhandene namensdefinition verwendet werden soll
eine idee wäre noch den kopiervorgang ohne Dropdownmenü und formeln zu gestalten, ich brauch zwar den inhalt dieser beiden spalten jedoch nicht die formel bzw das dopdown menü,
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 14:03:18
Beverly
Hi Babs,
ohne deine Arbeitsmappe zu kennen ist es schwer, etwas zu sagen.


AW: Benutzten Bereich kopieren und einfügen
07.12.2009 14:34:04
Babs
hallo, hier ist eine Beispieldatei
https://www.herber.de/bbs/user/66407.xls
Anzeige
AW: Benutzten Bereich kopieren und einfügen
07.12.2009 15:39:50
Beverly
Hi Babs,
da in Spalte B die SVERWEIS-Formel steht, wird sie durch Excel nicht als "leer" interpretiert, _ auch wenn das Formelergebnis "leer" ist. Du musst also prüfen, ob Spalte A, C:F der jeweiligen Zeile leer sind:

If Application.WorksheetFunction.CountA(Union(.Cells(Zeile, _
1), .Range(.Cells(Zeile, 3), .Cells(Zeile, 6)))) = 0 Then
.Rows(Zeile).Delete
End If


AW: Benutzten Bereich kopieren und einfügen
07.12.2009 15:54:21
Babs
hallo, funktioniert super,
dank dir, wäre von allein nicht drauf gekommen
Anzeige

355 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige