AW: Danke für Hinweis auf Library
02.06.2006 12:00:07
fcs
Hallo Bernd,
vielen Dank für den Hinweis auf die Library. Hab da auch schon rumgesucht, nachdem ich das DataObject nicht anlegen konnte.
Da gibt es unter der Hilfe von VBA ein wunderschönes Beispiel, wie man das umsetzen könnte. Aber das man auf eine zusätzliche und vor allem auf welche Library man verweisen muß, dieser Hinweis fehlt leider. :-(
Als Alternative könnte man unter Office 2003 die Werte der beiden Zellbereich in eine Hilfstabelle übertragen und dann kopieren. Dann gibt es aber ein Problem, wenn man die Hilfstabelle direkt wieder löscht. Abhängig davon, wie man die Office-Zwischenablage konfiguriert hat (diese muss auf "Sammeln ..." eingestelt sein), ist der Inhalt des kopierten Bereiches noch verfügbar oder auch nicht. Excel hat leider die unschöne Eigenschaft, dass die Zwischenablage nicht mehr verfügbar ist, wenn beim Kopieren von Zellbereichen der Kopiermodus abgebrochen wird oder eine andere Aktion ausgeführt wird.
Beispielcode:
Sub Test()
Dim Namen As Range, IdentNr As Range, wks As Worksheet
Set wks = ActiveSheet
Set Namen = wks.Range(Cells(3, "A"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "A"))
Set IdentNr = wks.Range(Cells(3, "I"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "I"))
'Zellinhalte in anderen Tabellenbereich übertragen
wks.Range(Cells(3, "IU"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IU")).Value = IdentNr.Value
wks.Range(Cells(3, "IV"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IV")).Value = Namen.Value
'Zellinhalte kopieren
wks.Range(Cells(3, "IU"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IV")).Copy
'Zellinhalte wieder löschen
wks.Range(Cells(3, "IU"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IV")).Clear
End Sub
ggf. letzte Zeile weglassen und Hilfswerte nach dem einfügen manuell löschen. Oder ein zweites Makro, mit dem man die Hilfsdaten wieder entfernt.
cu
Franz