Registriert seit: 11.04.2014
Version(en): Office 2007
29.06.2015, 08:25
(Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2015, 09:14 von Steffl.
Bearbeitungsgrund: bitte entfernt
)
Hallo,
(29.06.2015, 07: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 hier
Und 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, 20:31
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2015, 13: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
|