Discussion:
VBA Kopieren und Verknüpfen
(zu alt für eine Antwort)
Marco
2006-10-02 12:42:30 UTC
Permalink
Hallo liebe NG,

Ich habe ein Makro, welches aus einer Liste in einer Datei einzelne
Spalten kopiert und diese an einer beliebigen Stelle einfügt.
Das klappt auch soweit.
Stehen allerdings Formeln in den zu kopierenden Listen, so werden diese
so wie sie sind kopiert und verursachen gerne mal #BEZUG-Fehler.
Ausserdem möchte ich gerne die Option haben Alle Zeilen verknüpft zu
erhalten.

Es läuft dararuf hinaus, dass ich gerne die Optionen aus dem Menü
"Inhalte Einfügen..." per VBA brauche mit den Funktionalitäten
"Verknüpfen" und "Werte".

Habe leider Erfolglos bis jetzt.

Mein Code schaut wie folgt aus:


Set copyrng = copysheet.ListObjects(1).ListColumns(hilf
+ 1).Range
Application.CutCopyMode = False
copyrng.Copy Destination:=destrng.Offset(0, hilf2)


Ich danke euch schon im Voraus für die HIlfe

Beste Grüsse

Marco
Melanie Breden
2006-10-02 12:52:04 UTC
Permalink
Hallo Marco,
Post by Marco
Ich habe ein Makro, welches aus einer Liste in einer Datei einzelne
Spalten kopiert und diese an einer beliebigen Stelle einfügt.
Das klappt auch soweit.
Stehen allerdings Formeln in den zu kopierenden Listen, so werden diese
so wie sie sind kopiert und verursachen gerne mal #BEZUG-Fehler.
Ausserdem möchte ich gerne die Option haben Alle Zeilen verknüpft zu
erhalten.
Es läuft dararuf hinaus, dass ich gerne die Optionen aus dem Menü
"Inhalte Einfügen..." per VBA brauche mit den Funktionalitäten
"Verknüpfen" und "Werte".
anstatt die Werte zu kopieren und dann einzufügen kannst du sie auch DIREKT zuweisen:

Range("Ziel").Value = Range("Quelle").Value


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco
2006-10-02 13:01:22 UTC
Permalink
Hallo Melanie,

das ist mal ne prompte Antwort, vielen Dank!
Post by Melanie Breden
Post by Marco
Es läuft dararuf hinaus, dass ich gerne die Optionen aus dem Menü
"Inhalte Einfügen..." per VBA brauche mit den Funktionalitäten
"Verknüpfen" und "Werte".
Range("Ziel").Value = Range("Quelle").Value
Es ist im Moment so, dass das Zielrange nur eine Zelle ist (Der
Benutzer wählt eine Zelle aus und von dort an werden die Spalten
nacheinander eingefügt), somit sind "Ziel" und "Quelle" verschiedener
Grösse.

Vielleicht gibt es ja noch eine Möglichkeit, auf die ich bisher nicht
gekommen bin?!?

Beste Grüsse

Marco
Melanie Breden
2006-10-02 13:08:28 UTC
Permalink
Hallo Marco,
Post by Marco
Es ist im Moment so, dass das Zielrange nur eine Zelle ist (Der
Benutzer wählt eine Zelle aus und von dort an werden die Spalten
nacheinander eingefügt), somit sind "Ziel" und "Quelle" verschiedener
Grösse.
Vielleicht gibt es ja noch eine Möglichkeit, auf die ich bisher nicht
gekommen bin?!?
wenn der Quellbereich bekannt ist, kannst du die Größe des Zielbereichs
entsprechend anpassen.

Hier mal ein einfaches Beispiel:

Public Sub WerteKopieren()
Dim rngQuelle As Range
Dim rngZiel As Range

Set rngQuelle = Worksheets("Tabelle1").Range("A1:B10")
Set rngZiel = Worksheets("Tabelle2").Range("A10")

With rngQuelle
rngZiel.Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco
2006-10-02 13:25:28 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
wenn der Quellbereich bekannt ist, kannst du die Größe des Zielbereichs
entsprechend anpassen.
Tausend Dank für die Hilfe, es klappt vorzüglich. Ich habe mir das
aufwendiger vorgestellt.

Um Verknüpfungen zu erstellen müsste ich jetzt wahrscheinlich durch
jede der Zellen laufen und einzeln verknüpfen, oder gibt es da auch
einen schnelleren Weg?

Beste Grüsse Marco
Melanie Breden
2006-10-02 13:50:20 UTC
Permalink
Hallo Marco,
Post by Marco
Tausend Dank für die Hilfe, es klappt vorzüglich. Ich habe mir das
aufwendiger vorgestellt.
wenn man die richtigen Methoden kennt, ist es relativ einfach zu bewerkstelligen.
Post by Marco
Um Verknüpfungen zu erstellen müsste ich jetzt wahrscheinlich durch
jede der Zellen laufen und einzeln verknüpfen, oder gibt es da auch
einen schnelleren Weg?
ich hatte dich so verstanden, dass du keine Formeln, sondern feste Werte haben willst.
Um Verknüpfungen zu erstellen ist die Copy-Methode wohl einfacher.


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Marco
2006-10-02 14:13:40 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
ich hatte dich so verstanden, dass du keine Formeln, sondern feste Werte haben willst.
Um Verknüpfungen zu erstellen ist die Copy-Methode wohl einfacher.
Da hast du mich auch richtig verstanden.
Einmal möchte ich die Werte kopieren. Das hast du mir wunderbar
gelöst. Vielen Dank nochmals.
Zum zweiten möchte ich auf die Quelldaten verweisen um die Zieldaten
flexibel zu gestalten, wenn sich sich die Quelldaten ändern.

Mit der Copy-methode kopiere ich allerdings die Formeln, die in den
Quellzellen stehen und das kann dann Fehler verursachen, da nicht alle
Bezugszellen mitkopiert werden.

muss man nach folgendem SChema vorgehen oder gibt es eine "elegantere"
Lösung?

quellrng.copy
activesheet.paste Detination:=zielrange Link:=true

Beste Grüsse

Marco
Marco
2006-10-05 06:55:01 UTC
Permalink
Hallo NG,...
Post by Marco
quellrng.copy
activesheet.paste Detination:=zielrange Link:=true
Wenn man das Destination-Argument angibt, dann kann man nicht das
Link-Argument auch benutzen. Demnach z.B. so lösen:

quellrng.copy
zielrange.select
activesheet.paste link:=true

Beste Grüsse

Marco

Loading...