Inhalte einfügen VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 14.02.2005 15:45:40
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

Bild

Betrifft: AW: Inhalte einfügen VBA
von: Ute
Geschrieben am: 14.02.2005 15:51:33
Beim Kopieren werden die Formate der Zielzellen immer überschrieben, das ist auch
nicht zu verhindern.
mfg Ute
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 14.02.2005 15:58:54
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Ute
Geschrieben am: 14.02.2005 16:02:09
Auch Rahmen sind Formate.
mfg Ute
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 14.02.2005 16:10:54
Hallo Ute,
Danke für die Antwort...
Ist zwar Schade, ;O(
aber dann muss ich halt nachträglich formatieren...
Gruß
fzeh
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Ute
Geschrieben am: 14.02.2005 16:15:28
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 14.02.2005 16:43:24
gute Idee,
danke für den Tipp...
Gruß
fzeh
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Heinz A. Wankmüller
Geschrieben am: 14.02.2005 16:31:57
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 14.02.2005 16:52:00
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Heinz A. Wankmüller
Geschrieben am: 14.02.2005 20:02:15
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 15.02.2005 09:15:35
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Heinz A. Wankmüller
Geschrieben am: 15.02.2005 09:55:20
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 15.02.2005 12:50:59
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: Heinz A. Wankmüller
Geschrieben am: 15.02.2005 15:35:04
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
Bild

Betrifft: AW: Inhalte einfügen VBA
von: fzeh
Geschrieben am: 15.02.2005 16:12:00
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
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Inhalte einfügen VBA"