Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
568to572
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
568to572
568to572
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhalte einfügen VBA
14.02.2005 15:45:40
fzeh
Hallo,
möchte via VBA Zellinhalte aus einer Datei in eine andere kopieren, dabei sollen die Formatierungen in der Zieldatei nicht überschrieben werden.
In der Ursprungsdatei wird in Zelle B4 das Datum abgegriffen, um in der Zieldatei die Zeile zum Einfügen zu ermitteln (erste Spalte der Zieldatei enthält bereits Datum absteigend sortiert).
Das 'Umfeld' sieht so aus:
Dtm = Range("B4").Value 'Datumswert für Zeilenauswahl in Zieldatei festlegen
Range("A1:Q1").Select 'Zellbereich der in Zieldatei kopiert werden soll
Selection.Copy
Workbooks.Open ("O:\Zieldatei.xls")
Cells.Find(What:=Dtm).Activate
ActiveCell.Offset(0, 1).Activate 'die Zellen sollen rechts neben dem vorhandenen Datum eingefügt werden
ActiveSheet.Paste 'hierdurch wird aber die Formatierung der Zieldatei zerstört
PasteSpecial (wie beim manuellen 'Inhalte einfügen'-'Werte' funktioniert an dieser Stelle scheinbar nicht...
Ist vielleicht nur ein Denkfehler von mir?
Wer hat einen Tipp?
Vielen Dank...
Gruß
fzeh

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalte einfügen VBA
Ute
Beim Kopieren werden die Formate der Zielzellen immer überschrieben, das ist auch
nicht zu verhindern.
mfg Ute
AW: Inhalte einfügen VBA
14.02.2005 15:58:54
fzeh
Hallo Ute,
Danke für die schnelle Antwort...
Hab's fast befürchtet... Aber gilt das wirklich auch für vorhandene Zellrahmen?
Werden die immer 'zerstört'?
gruß
fzeh
AW: Inhalte einfügen VBA
Ute
Auch Rahmen sind Formate.
mfg Ute
AW: Inhalte einfügen VBA
fzeh
Hallo Ute,
Danke für die Antwort...
Ist zwar Schade, ;O(
aber dann muss ich halt nachträglich formatieren...
Gruß
fzeh
AW: Inhalte einfügen VBA
Ute
Kopier doch einfach die Formate der Zielzellen in ein leeres Blatt. Nachdem du
die anderen Daten/Werte kopiert hast, kopierst du die Formate wieder zurück
mit PasteSpecial Paste:=xlPasteFormats
mfg Ute
Anzeige
AW: Inhalte einfügen VBA
fzeh
gute Idee,
danke für den Tipp...
Gruß
fzeh
AW: Inhalte einfügen VBA
14.02.2005 16:31:57
Heinz
Hallo,
warum soll PasteSpecial nicht funktionieren?

Sub Copy()
Range("A1:A5").Copy
Workbooks.Open Filename:="W:\Test\Test.xls"
Range("V10").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub

Gruß
Heinz
AW: Inhalte einfügen VBA
fzeh
Hallo Heinz,
Danke für die Antwort,
PasteSpecial passt aber irgendwie nicht mit der Umgebung 'ActiveSheet und Offset'...
Falls Du noch eine Idee hast?
viele Grüße
fzeh
AW: Inhalte einfügen VBA
14.02.2005 20:02:15
Heinz
Hallo,
hier einetestetes Beispiel:

Sub Copy()
Range("A3:A4").Copy
Workbooks.Open ("L:\Daten\EXCEL\#tests\17878.xls")
Cells.Find("otto").Offset(0, 1).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub

Ich sehe das Problem absolut nicht
Gruß
Heinz
Anzeige
AW: Inhalte einfügen VBA
fzeh
Hallo Heinz,
Danke für die Mühe.
Wenn ich Deinen Vorschlag umsetze, erhalte ich an dieser Stelle
Cells.Find("otto").Offset(0, 1).PasteSpecial Paste:=xlValues
die Meldung: Laufzeitfehler '91' Objektvariable oder With-Blockvariable nicht festgelegt.
;O(
Mir fällt nichts mehr ein...
Gruß
fzeh
AW: Inhalte einfügen VBA
15.02.2005 09:55:20
Heinz
Hallo,
da ist kein Problem, denn die Meldung kommt dann, wenn der Suchbegriff, hier "otto", nicht gefunden wird. Wenn man das abfangen will, müsste man den Code z.B. so erweitern

Sub Copy()
Dim gef As Range
Range("A3:A4").Copy
Workbooks.Open ("L:\Daten\EXCEL\#tests\17878.xls")
Set gef = Cells.Find("otto")
If Not gef Is Nothing Then
gef.Offset(0, 1).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Else
MsgBox "Der Suchbegriff wurde nicht gefunden!"
End If
End Sub

Gruß
Heinz
Anzeige
AW: Inhalte einfügen VBA
fzeh
Hallo Heinz,
Danke für den Code...
Hatte natürlich 'Otto' in eine Zelle eingetragen... trotzdem die Fehlermeldung...
Habe jetzt mal ausschließlich Deinen Code getestet: Da erhalte ich bei PasteSpecial die Meldung: Laufzeitfehler '1004' Die Paste-Special-Methode de Range-Objektes konnte nicht ausgeführt werden.
Wenn ich kein Feld mit 'otto' bezeichne, läft der Code ordnungsgemäß durch... (...nicht gefunden...).
Liegt's evtl. an meinem System? (XP SP2, Excel 2002 (10.43...))
Viele Grüße
fzeh
AW: Inhalte einfügen VBA
15.02.2005 15:35:04
Heinz
Hallo,
da könnte die Ursache sein, dass das Blatt geschützt ist. Wär das eine Möglichkeit?
Es gibt sonst keinen Grund, dass das nicht funktioniert. Das System schließe ich absolut aus.
Versuch mal, ganz neue Dateien zu erstellen, die eine, aus der kopiert werden soll und eine, in die die Kopie nach dem Fund der Fundstelle soll. Das muss funktionieren!
Gruß
Heinz
Anzeige
AW: Inhalte einfügen VBA
fzeh
Hallo Heinz,
unglaublich, aber so geht's... !!?
Habe zwei neue Dateien erstellt, Problem besteht nun nicht mehr.
Ursprüngliche Ziel-Datei war aber nicht geschützt o.ä. ...
(aber unter Office 97 erstellt, vielleicht lag's daran...).
Vielen Dank für die Hilfe...
Gruß
fzeh

239 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige