Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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
Inhaltsverzeichnis

Range

Range
24.01.2018 13:20:42
Ulli
Hallo zusammen,
ich möchte ein Makro mit vielen "copy und paste" auf Range umstellen, um es schneller zu machen.
Leider werden dabei Hyperlinks im Gegensatz zum Copy vorher nicht mehr übertragen. Sonst funktioniert es.
Mein Code:
Dim Zeile As Variant, S As Variant 'S = Spalte
Dim F As Variant 'F = Feld
Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F) = _
Workbooks("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Sheets("Kommunale daten").Cells(Zeile, S)
Vielen Dank für die Hilfe
Ulli

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range
24.01.2018 13:29:45
Werner
Hallo Ulli,
wer soll denn mit dem Codeschnipsel was anfangen?
Warum Zeile as Variant und S as Variant?
Ich gehe mal davon aus, dass die Variablen die Zeilen/Spaltennummer enthalten, dann as Long.
Wie sieht denn dein ursprünglicher Code aus?
Gruß Werner
AW: Range
24.01.2018 13:57:32
Ulli
Hallo Werner,
ich wollte nicht zu viel reinpacken, weil offensichtlich nur dieser Schnipsel nicht so funktioniert, wie ich es wollte.
Mein ursprünglicher Code an dieser Stelle war:
Windows("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Activate
ActiveCell.Offset(0, -1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Datenbank1.xlsm").Activate
Range("E22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Um das Kopieren zu umgehen, verwende ich nun diesen Code:
Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F) = _
Workbooks("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Sheets("Kommunaledaten").Cells(Zeile, S)
Manchmal enthält die zu übertragende Zelle neben dem Wert auch einen Link.
Dieser fehlt aber dann in der Empfängerdatei.
Gruß Ulli
Anzeige
AW: Range
24.01.2018 14:37:51
Robert
Hallo Ulli,
ich glaube, die Hyperlinks wirst Du nur mit dem Kopieren erhalten können. Allerdings macht macht das ständige Activate und Select in Deinem Code die Sache nur langsam. Besser wäre es, wenn Du die Zellen wie folgt kopierst:
Workbooks("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Sheets("Kommunaledaten" _
).Cells(Zeile, S).Copy Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F)
Wenn es mehrere Kopiervorgänge sind, kann man die einzelnen Zeilen mit With auch noch etwas kürzen, in etwa so:
With Workbooks("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Sheets(" _
Kommunaledaten")
.Cells(Zeile, S).Copy Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F)
'hier dann die neue Zuweisungen zu den Variablen S und F
.Cells(Zeile, S).Copy Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F)
End With
Gruß
Robert
Anzeige
AW: Range
24.01.2018 14:58:51
Ulli
Hallo Robert,
super, die Links werden jetzt mitgenommen.
Allerdings würde ich gern das Format der "Empfängerdatei" beibehalten.
Mit dem jetzigen Code wird das komplett andere Format der Ursprungsdatei übernommen.
Kann ich das noch irgendwie abstellen.
Grüße
Ulli
AW: Range
24.01.2018 16:04:02
Robert
Hallo,
dann muss man wohl einen anderen Weg gehen.
With Workbooks("10.03.2008 Alle Daten zur Kommune KA-Korrektur Urdatei.xlsm").Sheets(" _
Kommunaledaten")
Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Range(F) = .Cells(Zeile, S)
If .Cells(Zeile, S).Hyperlinks.Count > 0 Then
Workbooks("Datenbank1.xlsm").Sheets("Seite 1").Hyperlinks.Add Range(F), .Cells(Zeile, S). _
Hyperlinks(1).Address
End If
End With
Zuerst wird der Wert von der "Urdatei" in die Datenbank1 übertragen, dann wird geprüft ob in der Zelle in der "Urdatei" ein Hyperlink enthalten ist. Ist dies der Fall, wird der Hyperlink in der Datenbank1 neu angelegt.
Gruß
Robert
Anzeige
AW: Range
24.01.2018 16:22:19
Ulli
Hallo Robert,
super, das hat gesessen. Klappt perfekt.
Vielen Dank
Viele Grüße
Ulli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige