![]() |
Betrifft: Wertebereich suchen und kopieren
von: stormlamp
Geschrieben am: 29.09.2014 15:25:04
Hallo Zusammen,
In Tabellen1 ziehe ich aus anderen Tabellen über Formeln Werte zusammen. Dabei sind in Tabelle1 soviele Zeilen mit Formeln gefüllt, wie maximal zusammenkommen können.
Nun möchte ich per Makro den Bereich, der tatsächlich Werte enthält ans Ende von Tabelle2 übertragen. In Spalte E enthält die erste nicht gefüllte Zelle ein #NV, das ich Suche.
Dann kommt der Teil, der mir Probleme macht. Ich muss einen Bereich markieren, ausgehend von der gefundenen #NV-Zelle eine Zeile hoch und 6 Spalten nach rechts, von dort aus zurück bis A2.
Diesen markierten Bereich kopiere ich dann in die erste leere Zelle in Spalte A der Tabelle 2 und springe zurück in Tabelle1.
Hier das Script in dem mir nur noch die Bereichsdefinition fehlt.
Wie muss ich diese Definition richtig schreiben?
Sub Bereichkopieren() Range("E2").Select Cells.Find(What:="#NV", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate >> Zelladresse1 = Range( "aktuell gefundene Zelle - 1 Zeile nach oben + 6 Spalten nach _ rechts").Select >> Range("A2:Zelladresse1").Select Selection.Copy Sheets("Tabelle2").Select Range("A1").Select Cells.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveSheet.Paste Sheets("Tabelle1").Select Range("B2").Select Application.CutCopyMode = False End SubGruß
![]() ![]() |
Betrifft: AW: Wertebereich suchen und kopieren
von: Rudi Maintaire
Geschrieben am: 29.09.2014 15:48:05
Hallo,
Range(Cells(2, 1), ActiveCell.Offset(-1, 6)).Copy
Gruß
Rudi
![]() ![]() |
Betrifft: AW: Wertebereich suchen und kopieren
von: stormlamp
Geschrieben am: 29.09.2014 16:01:23
Hallo Rudi,
danke für die Information.
Leider läuft der andere Teil des Makros nicht.
Ich habe das Makro aufgezeichnet, aber wenn ich es ablaufen lassen will, funktioniert es nicht und bleibt mit Fehler 91 hängen.
Bisher war ich davon ausgegangen, dass Makroaufzeichnungen ohne Nachbearbeitung auch lauffähig sind. Ganz offensichtlich ein Trugschluss. Jeweils die aufgezeichneten Teile "Cells.Find..." wollen nicht.
Was muss ich an diesem Script noch ändern, damit es fehlerfrei läuft?
Sub Bereichkopieren() Range("E:E").Select Cells.Find(What:="#NV", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate Range(Cells(2, 1), ActiveCell.Offset(-1, 6)).Copy Sheets("Tabelle2").Select Range("A1").Select Cells.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveSheet.Paste Sheets("Tabelle1").Select Range("B2").Select Application.CutCopyMode = False End SubGruß
![]() ![]() |
Betrifft: AW: Wertebereich suchen und kopieren
von: Rudi Maintaire
Geschrieben am: 29.09.2014 16:39:58
Hallo,
Range("E2").Select Cells.Find(What:="n/a", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate Range(Cells(2, 1), ActiveCell.Offset(-1, 6)).Copy
![]() ![]() |
Betrifft: Gelöst
von: stormlamp
Geschrieben am: 29.09.2014 20:22:14
Danke für die Hilfe, nun klappt es.
Die neue Information mitten im Thead hatte ich zuerst übersehen.
Gruß
Hans
![]() ![]() |
Betrifft: AW: Wertebereich suchen und kopieren
von: stormlamp
Geschrieben am: 29.09.2014 16:35:01
Hallo,
ich habe jetzt den Laufzeitfehler 91 weg, dafür funktioniert jedoch die vorgeschlagene Selektion nicht mehr. Wo mache ich den Fehler?
Sub Werte_kopieren() ' ' Makro2 Werte_kopieren ' Range("E:E").Select mystring1 = "#NV" Set RangeObj = Cells.Find(What:=mystring1, After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False) Range(Cells(2, 1), ActiveCell.Offset(-1, 6)).Copy Selection.Copy Sheets("Tabelle2").Select Range("A1").Select mystring2 = "" Set RangeObj = Cells.Find(What:=mystring2, After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False) ActiveSheet.Paste Sheets("Tabelle1").Select Range("B2").Select Application.CutCopyMode = False End SubGruß
![]() ![]() |
Betrifft: lösche Selection.Copy owT
von: Rudi Maintaire
Geschrieben am: 29.09.2014 16:41:09
![]() ![]() |
Betrifft: AW: lösche Selection.Copy owT
von: stormlamp
Geschrieben am: 29.09.2014 18:03:22
Hallo,
das war es leider nicht. Das Makro bleibt genau bei:
Range(Cells(2, 1), ActiveCell.Offset(-1, 6)).Copy
mit Laufzeitfehler 1004 stehen.
Gruß
Hans
![]() |