Registriert seit: 11.04.2014
Version(en): Office 2007
29.06.2015, 09:25
(Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2015, 10:14 von Steffl.
Bearbeitungsgrund: bitte entfernt
)
Hallo, (29.06.2015, 08:26)Gigbert62 schrieb: von "5" bis "33" nur Werte kopieren, von "34" bis "35" die Formeln kopieren, von "36" bis "55" wieder nur Werte kopieren. Du meinst hier Zeilen? Das halte ich für ungünstig wenn sich innerhalb einer Tabelle das Format ändert, siehe auch hierUnd noch eine Bitte: Zitiere nicht den gesamten Text vom Beitrag.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 26.06.2015
Version(en): 2010
Hi Stefan, das mit dem zitieren vom gesamten Text sei mir, einem "Neuling" im Forum geschuldet, bin immer auf Antworten gegangen. Versuche mich zu bessern .... jetzt antworte ich mit "Schnellantwort" und hoffe es passt dann.
Zu dem eigentlichen Thema, der Andre (schauan) hat mir schon wesentlich und eigentlich Final geholfen den Code so hinzubekommen wie es sein sollte, ich hatte leider übersehen ,das bei den Kopieren (von Verweisen und Formeln) und dem nachfolgenden Einfügen immer eine Zeile tiefer als "nur Wert", bei 2 Spalten die Formel erhalten werden muss. War mein Fehler bei der Fragestellung.
Zur Zeit ist es so kodiert das immer eine Zeile gefunden wird wenn ein Begriff in Spalte "C gefunden wird, dann wird in der gleichen Zeile von "5" - "55" kopiert und immer eine Zeile tiefer als "nur WERT" eingefügt. Und da bräuchte ich jetzt quasi ein "Splitt", wenn man das so sagen kann:
von "5" bis "33" nur Werte kopieren, von "34" bis "35" die Formeln kopieren, von "36" bis "55" wieder nur Werte kopieren.
Der Code, so wie er zur Zeit funktioniert, ist in meiner letzten Antwort an den Andre.
Danke und Gruß Dirk
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, versuchs mal anstatt so Code: Cells(lRow + 1, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
so Code: Cells(lRow + 1, 5).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Gruß Stefan Win 10 / Office 2016
Registriert seit: 26.06.2015
Version(en): 2010
Hallo Stefan, danke für den Tipp, hatte ich schon versucht. Leider darf ich nicht alle Formeln aus der Quellzeile kopieren und anfügen, sondern nur die aus den Spalten 34 und 35, alle anderen sollen als "nur Wert" eingefügt werden.
von Spalte "5" bis "33" nur Werte einfügen, von Spalte "34" bis "35" die Formeln einfügen, von Spalte "36" bis "55" wieder nur Werte einfügen.
Gruß Dirk
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Dirk,
im Prinzip kannst Du z.B. in zwei Schritten vorgehen. Zuerst trägst Du im kompletten Bereich die Werte ein, also mit ... PasteValues ....
Anschließend kopierst Du nochmal die beiden Zellen Range(Cells(lRow, 34), Cells(lRow, 35)).Copy und fügst sie ensprechend ein. Cells(lRow + 1, 34).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.06.2015
Version(en): 2010
29.06.2015, 21:31
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2015, 14:35 von Rabe.
Bearbeitungsgrund: Makro strukturiert dargestellt mit CODE-Button
)
Hi Andre, genau das mit dem 2 Schritten hatte ich heut morgen versucht nur hat nicht so geklappt. Ich dachte ich müsste wieder eine Zeile "hochrutschen" um die Formel zu kopieren. Typischer Anfänger Gedankenfehler nehme ich an Habe eben Deinen Code eingefügt und klappt sofort. Herzlichen Dank an alle und besonders an Andre.. damit ist das Thema aber jetzt wirklich abgeschlossen. Hier noch einmal der finale Code falls noch jemand diese Methode anwenden möchte: Code: Sub Copy_Paste_Value_RunPlan() ' Copy_Paste_Value_RP Makro ' Sucht nach einem bestimmten Begriff in bestimmter Spalte ' Kopiert alle Daten aus der Reihe SAP_PLan von Spalte X bis Y und fügt in die nächste Zeile als "Wert" ein ' Spalte 33 und 34 werden im zweiten Schritt als Formel eingefügt (kopiert aus der Originalzeile) ' 27.06.15 ' 'Variablendeklarationen 'Long Dim lRow As Long 'String Dim strTreffer As String 'Range Dim rngCell As Range 'In Spalte C Suchbegriff finden Columns("C:C").Find(What:="SAP_PLAN", After:=Cells(5, 3), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate strTreffer = ActiveCell.Address 'Schleife ueber alle Treffer Do Set rngCell = ActiveCell 'Zeilennummer der aktiven Zelle feststellen lRow = ActiveCell.Row 'Bereich ab Spalte E kopieren und unterhalb einfuegen Range(Cells(lRow, 5), Cells(lRow, 55)).Copy ' Hier werden die gefilterten Daten ans Ende der Datei kopiert 'Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ ' :=False, Transpose:=False ' Hier werden die Daten direkt in die darunterliegend Zeile kopiert Cells(lRow + 1, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range(Cells(lRow, 33), Cells(lRow, 34)).Copy Cells(lRow + 1, 33).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 'naechste Fundstelle suchen Columns("C:C").FindNext(After:=rngCell).Activate 'Ende Schleife ueber alle Treffer, wenn erster Treffer wieder erreicht ist Loop Until ActiveCell.Address = strTreffer End Sub
|