1.7k Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (926 Punkte)
Hallo Helfer,
bisher wird folgender Code angewendet:
For intColumn = 1 To 11
For intSheets = 1 To 11
If Sheets(intSheets).Name = ActiveSheet.Cells(4, intColumn) Then
ActiveSheet.Range(Cells(6, intColumn), Cells(99, intColumn)).Copy
Sheets(intSheets).Cells(6, (CInt(Range(strColumnEingabe & 1).Column))).PasteSpecial Paste:=xlPasteFormulas
End If

ich möchte nun aber, das eine Verknüpfung zu den Ursprungsdaten eingefügt wird und nicht deren Werte. Per "Makro aufzeichnen" habe ich folgendes erhalten:
ActiveSheet.Paste Link:=True

Ich dachte ich könnte "PasteSpecial ..." durch "Paste Link:=True" ersetzen, aber das führt zu Fehler "438, Objekt unterstützt..... nicht"
Wie lautet der "Richtige" Code?
Vielen Dank im Voraus
mfg
Wolfgang H.

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Wolfgang,

hier braucht mal Select. Versuch es mal so:

For intColumn = 1 To 11
For intSheets = 1 To 11
If Sheets(intSheets).Name = ActiveSheet.Cells(4, intColumn) Then
ActiveSheet.Range(Cells(6, intColumn), Cells(99, intColumn)).Copy
Sheets(intSheets).Cells(6, (CInt(Range(strColumnEingabe & 1).Column))).Select
ActiveSheet.Paste link:=True
End If


Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo M.O.
das Makro stoppt an der gleichen Stelle, aber mit Fehler "1004, Die select Methode des Range-Objektes konnte nicht ausgeführt werden"
mfg
W.Herholtz
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Wolfgang,

nächster Versuch:

ActiveSheet.Range(Cells(6, intColumn), Cells(99, intColumn)).Copy

With Worksheets(intSheets)
.Select
.Cells(6, (CInt(.Range(strColumnEingabe & 1).Column))).Select
.Paste link:=True
End With


Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo M.O.
das könnte funktionieren.
Allerdings muss noch nach End with das Makro auf das ursprüngliche Tabellenblatt zurück kehren.
Daran kann ich aber erst Morgen weiter basteln, für Heute ist jetzt Feierabend.
Vielen Dank
mfg
W.Herholtz
...