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

unbekannten Bereich kopieren

unbekannten Bereich kopieren
14.12.2014 17:16:50
Selma
Hallo zusammen,
ich habe folgendes Problem und bin mir nicht sicher, ob das überhaupt realisierbar ist.
Es geht darum, dass ich einen Bereich an Daten habe, bei dem ich nie weiss wo dieser aufhört. Es gibt aber eine Art Überschrift, die immer an derselben Stelle steht (B15) "Ebene". Der Bereich darunter ist aber variabel, hört aber immer mit dem Wort "Gesamtsumme" auf. Dieser Bereich soll kopiert und in eine andere Datei eingefügt werden.
Dann soll der Bereich rechts, also die 12 Spalten daneben, mit derselben Zeilenanzahl kopiert werden.
Kann mir jemand helfen? Ich verzweifle mit meinen Grundkenntnissen an dieser Aufgabenstellung.

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: unbekannten Bereich kopieren
14.12.2014 18:06:13
Daniel
Hi
müsste so funktionieren, für die ? bitte noch die entsprechenden Namen einsetzen:
dim Zelle1 as Range
dim Zelle2 as Range
'--- Zellbereich festlegen
set Zelle1 = range("B15")
set Zelle2 = Cells.Find(what:="Gesamtsumme", lookat:=xlwhole)
'--- Zellbereich kopieren und in andere Datei einfügen
Range(Zelle1, Zelle2).Copy
Workbooks("?").Sheets("?").Range("?").PasteSpecial xlpasteall
'--- Zellbereich 12 Spalten daneben kopieren
Range(Zelle1, Zelle2).Offset(0, 12).Copy

Gruß Daniel

AW: unbekannten Bereich kopieren
14.12.2014 18:36:30
Selma
Hi,
danke schon mal. Das sieht einfacher aus als ich dachte.
Jetzt habe ich eine Frage zu diesem Teil:
Workbooks("?").Sheets("?").Range("?").PasteSpecial xlpasteall
Da mein Workbook immer anders heisst, habe ich sozusagen eine Zieldatei deklariert "wsZiel". Irgendwie bin ich aber zu blöd die Range festzulegen. Ich habe es damit versucht:
wsZiel.Cells(94, 1).PasteSpecial xlPasteAll
Sorry für die doofe Frage.. Aber was mache ich falsch?
Bei mir kommt die Fehlermeldung "Kann Teil einer verbundenen Zeile nicht ändern"

Anzeige
AW: unbekannten Bereich kopieren
14.12.2014 18:48:33
Daniel
HI
wenn du verbundene Zellen hast, solltet beim Arbeiten mit diesen Zellen darauf achten, dass du entweder alle Zellen, die zum Zellverbund gehören, bearbeitest, oder keine.
Wenn du versuchst, nur Teile zu bearbeiten, dann kommt diese Fehlermeldung.
dh wenn die Zellen A1 und A2 verbunden sind, solltest du auch immer A1:A2 kopieren und nicht nur A1.
am wenigsten Probleme hat man, wenn man auf verbunde Zellen versichtet.
Horizontal verbunde Zellen lassen sich meist auch durch die Formatierung "über Spalten zentrieren" ersetzen, und das verursacht dann weniger Probleme.
Gruß Daniel

Anzeige
AW: unbekannten Bereich kopieren
14.12.2014 19:00:41
Selma
Hallo nochmal.
Aber an sich ist die Zeile formal korrekt, oder?
Das komische ist, dieser Bereich enthält keine verbundenen Zellen, deswegen kann ich mir das nicht erklären.

AW: unbekannten Bereich kopieren
14.12.2014 19:06:12
Daniel
Hi
welchen Bereich meinst du mit "dieser Bereich"?
das gesagte gilt natürlich sowohl für den kopierten, als auch für den Bereich in den du einfügst.
da ich deine Datei nicht kenne, kann ich dir auch keine konkrete Antwort geben.
Gruß Daniel

AW: unbekannten Bereich kopieren
14.12.2014 23:30:09
Ewald
Hallo,
könnte es sein das die Zelle "Gesamtsumme" eine verbundene Zelle ist.
Gruß Ewald

AW: unbekannten Bereich kopieren
15.12.2014 07:58:25
Selma
Guten Morgen,
mit "diesem Bereich" meine ich genau den kopierten und den Bereich in dem ich einfüge. Gesamtsumme ist auch keine verbundene Zelle.. Alles sehr mysteriös.
Komischerweise kommt jetzt die Fehlermeldung "Die Pastespecial-Methode des Range-Objekts konnte nicht ausgeführt werden". Versteh nur noch Bahnhof. :S
Leider sind die Dateien zu groß um sie hier hochzuladen..

Anzeige
AW: unbekannten Bereich kopieren
15.12.2014 08:44:21
Christian
hallo Selma,
...habe ich sozusagen eine Zieldatei deklariert "wsZiel"....
So wie du es einsetzt ist "wsZiel" ein Worksheet.
hast du dieses auch auf das korrekte Workbook referenziert?
Gruß
Christian

AW: unbekannten Bereich kopieren
15.12.2014 08:56:09
Selma
Hallo.
Hab das gerade eben hingekriegt indem ich mit Activate ein bisschen rumspiele. Meine Anwendung war wohl etwas verwirrt mit dem herumspringen zwischen den Dateien.
Jetzt hat sich aber ein anderes Problem ergeben.
Werte der Zellen, die Berechnungen enthalten, werden mir nicht angezeigt. Wo muss ich ansetzen um das in den Griff zu kriegen?
Tausend Dank schon mal für die ganze Unterstützung!!

Anzeige
AW: unbekannten Bereich kopieren
15.12.2014 09:05:03
Christian
Wenn du nur die Werte übertragen willst, statt der Formeln, dann xlPasteValues statt xlpasteAll. Das kannst du aber einfach über den Makrorecorder herausfinden.
Außerdem brauchst du kein Activate, wenn du vollständig referenzierst. Dann kommst weder du noch deinen Anwendnung durcheinander.
Gruß
Christian

AW: unbekannten Bereich kopieren
15.12.2014 10:01:23
Selma
Ok, danke. Hab das jetzt auch gelöst. :)
Noch eine letzte Frage: Beim Übertragen der Daten kriege ich in der neuen Datei in einigen Zellen einen #BEZUG!-Fehler. Diese und leere Zeilen wollte ich eigentlich ausblenden. Ich schaffe es aber nicht auch die Zeilen auszublenden in denen dieser Fehler auftrifft.
Mein bisheriger Code sieht so aus, der nur die leeren Zeilen abdeckt:
Sub ausblendenTagessätze_DesignBuildRun()
Set CellRange = Range("C10:E88,C95:E345, C460:E710")
For Each Cell In CellRange
Cell.EntireRow.Hidden = (Cell.Value = "")
Next
End Sub
Leider finde ich keinen Anhaltspunkt wie ich diesen #BEZUG!-Fehler mit VBA ausblenden kann..

Anzeige
AW: unbekannten Bereich kopieren
15.12.2014 10:20:30
yummi
Hallo Selma,
das kannst Du so machen:

Sub ausblendenTagessätze_DesignBuildRun()
Set CellRange = Range("C10:E88,C95:E345, C460:E710")
For Each Cell In CellRange
if Cell.EntireRow.Hidden = False then
Cell.EntireRow.Hidden = (Cell.Value = "")
Cell.EntireRow.Hidden = IsError(Cell)
end if
Next
End Sub

Gruß
yummi

AW: unbekannten Bereich kopieren
16.12.2014 09:53:20
Selma
Hallo Yummi,
genau DAS habe ich gesucht! Tausend Dank! IsError muss ich mir merken. Ich hab das bisher total kompliziert versucht zu umgehen. :)
Jetzt aber wirklich noch die letzte Frage, da sich mir gerade dieses Problem in den Weg stellt:
Gibt es auch eine Methode bei VBA wie ich Zellen von unten nach oben befülle? Ich suche nach so einer Funktion, finde aber leider nichts.
Jetzt speziell zu der Themenstellung von meinem Eingangspost. Nochmal herzlichen Dank für die Lösung, die klappt wunderbar.
Ich frage mich nun, ob es nicht möglich wäre, dass der kopierte Bereich beim Einfügen von unten nach oben in der Zieldatei befüllt werden kann, da ich in der neuen Datei weiß wo die letzte Zeile stehen muss, aber nicht wo die erste des kopierten Bereichs sein sollte. Also letzte Zeile des kopierten Bereichs kommt in die letzte Zeile der Zieldatei, usw.
Hintergrund ist ein Template und da steht die Gesamtsumme in Zelle "A349". Da sollte es dann auch losgehen.
Der Code sieht bisher so aus:
    '--- Zellbereich festlegen
wbQuelle.Activate
Set Zelle1 = Range("B15")
Set Zelle2 = Cells.Find(what:="Gesamtsumme", lookat:=xlWhole)
'--- Zellbereich kopieren und in andere Datei einfügen
Range(Zelle1, Zelle2).Copy
wsZiel.Activate
Sheets(1).Activate
Range("A94").PasteSpecial xlPasteAll
'--- Zellbereich der 12 Spalten daneben kopieren
wbQuelle.Activate
Range(Zelle1, Zelle2).Offset(0, 1).Copy
wsZiel.Activate
Sheets(1).Activate
Range("C94:N94").PasteSpecial xlPasteAll
Danke nochmal für eure wunderbare Unterstützung. So lernt man es wirklich gut!

Anzeige
AW: unbekannten Bereich kopieren
17.12.2014 12:32:42
yummi
Hallo Selma,
du musst nicht selektieren:

'--- Zellbereich festlegen
'wbQuelle.Activate
with wbQuelle
Set Zelle1 = .Range("B15")
Set Zelle2 = .Cells.Find(what:="Gesamtsumme", lookat:=xlWhole)
end with
'--- Zellbereich kopieren und in andere Datei einfügen
wbQuelle.Range(Zelle1, Zelle2).Copy
'wsZiel.Activate
'Sheets(1).Activate
wsZiel.Sheets(1).Range("A94").PasteSpecial xlPasteAll
'--- Zellbereich der 12 Spalten daneben kopieren
'wbQuelle.Activate
wbQuelle.Range(Zelle1, Zelle2).Offset(0, 1).Copy
'wsZiel.Activate
'Sheets(1).Activate
wsZiel.Sheets(1).Range("C94:N94").PasteSpecial xlPasteAll
Wenn Du die Zeile von Gesamtsumme kennst und von unten nach oben davor einfügen willst, dann musst du beim Einfügen entsprechend verweisen. Also z.B.
hilfsmeerker = ZeileGesamtsumme-1
dann einfügen etwa so
wsZiel.Sheet(1).Range(wsziel.Sheets(1).Cells(hilfsmerker, zielspalte),wsziel.Sheets(1).Cells(hilfsmerker, zielspalte).pastespecial ....
und anach dein hilsmerker = hilfsmerker - 1 und das für alle zeilen die du einfügen willst.
Gruß
yummi

Anzeige
AW: unbekannten Bereich kopieren
17.12.2014 13:08:48
Selma
Hi Yummi,
ich werde das heute noch probieren und melde mich dann wieder :)
Muss gerade noch grundsätzliche Probleme mit meinem Code klären. Vielleicht finden diese auch noch den Weg ins Forum. :P
Aber DANKE schon mal!

AW: unbekannten Bereich kopieren
18.12.2014 14:06:46
Selma
Hi.
Sry, ich krieg das nicht gebacken.
Also ich will aus allem was ich hier kopiere bezwecken, dass jeweils der kopierte Bereich von unten nach oben in den Zielbereich von unten nach oben kopiert wird. Ich weiß partout nicht wie ich das machen soll.
Kann mir da noch jemand kurz einen Stups in die richtige Richtung geben? DANKE!!!
'    Umfang TASK
'    --- Zellbereich festlegen
With wksDeckblatt
Set Zelle1 = .Range("B15")
Set Zelle2 = .Cells.Find(what:="Gesamtsumme", lookat:=xlWhole)
End With
'    --- Zellbereich kopieren und in andere Datei einfügen
With wksDeckblatt
.Range(Zelle1, Zelle2).Copy
wsZiel.Range("A94").PasteSpecial xlPasteAll
'    --- Zellbereich der 12 Spalten daneben kopieren
'wbQuelle.Activate
.Range(Zelle1, Zelle2).Offset(0, 1).Copy
End With
ZeileGesamtsumme = 349
'  For ZeileGesamtsumme = 95 To 349
hilfsmerker = ZeileGesamtsumme - 1
'   einfügen
wsZiel.Range(wsZiel.Cells(hilfsmerker, Spalte), wsZiel.Cells(hilfsmerker, Spalte + 11)). _
PasteSpecial xlPasteAll
hilfsmerker = hilfsmerker - 1
'   Next ZeileGesamtsumme

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige