PDA

Vollständige Version anzeigen : Verlinkung aus Verkettung


Schtef90
02.07.2014, 18:29
Hey,



ich hab mal eine Frage weil ich zu diesem Thema nichts finde.



Ich habe mir durch verketten einen Link erstellt. (Bzw. Durch ="A"&"B" in einer Zelle)

Dieser Link soll sich auf eine Zelle einer anderen Datei beziehen und daraus den Wert anzeigen.

Nun bekomme ich aber nur einen Text und keine echte Verlinkung.



Hat jemand da eine Idee was ich machen muss um eine echte Verlinkung zu bekommen?



Ich habe mir mit VBA einen Code geschrieben welcher den Text kopiert und dann wieder einfügt, das Funktioniert auch. Das Problem ist nur die Bearbeitungszeit. Für eine Tabelle braucht er 6 Minuten und ich hab 7 Stück. Ergo 42 Minuten was mir eindeutig zu lange ist.



Wäre über jede Idee dankbar.



Gruß

Stefan

aloys78
02.07.2014, 19:05
Hallo Stefan,
Ich habe mir mit VBA einen Code geschrieben welcher den Text kopiert und dann wieder einfügt, das Funktioniert auch. Das Problem ist nur die Bearbeitungszeit. Für eine Tabelle braucht er 6 Minuten und ich hab 7 Stück. Ergo 42 Minuten was mir eindeutig zu lange ist.
Stell doch mal deinen Code vor, am besten mit einer Beispiel-Tabelle.

Gruß
Aloys

Schtef90
02.07.2014, 19:53
In Zelle A1 ist die Verknüpfung funktionsfähig eingepflegt.

Diese Verknüpfung ist als Text in Zelle A4 dargestellt

Diese Verknüpfung ist dann über eine Verkettung ( &-Zeichen ) in Zelle A3 wiedergegeben. Wenn man dieser Formel dann bestätigt, steht in dieser Zelle dann der gleiche Inhalt wie in A4.

Mein Code nimmt dann den Zelleninhalt schreibt ihn in eine Variable und schreibt diese dann wieder in die Zelle hinein.

Das geht dann bei ca. 35.000 Zellen 6 Minuten.




Sub LinkErsetzen()

Dim Link As String

Dim Zelle As String


Application.ScreenUpdating = False

Application.DisplayAlerts = False

Sheets("LinkDaten 2010").Visible = True
Sheets("LinkDaten 2010").Select

Range("E8").Select

NaechsteSpalte2010:

Do While Selection.Row < 380

If ActiveCell.HasFormula = False Then GoTo NaechsteZeile2010

Link = Selection.Value
Selection.Value = "=" & Link


NaechsteZeile2010:

Cells(Selection.Row + 1, Selection.Column).Select

Loop

Cells(Selection.Row - 372, Selection.Column + 1).Select

If Selection.Column = 101 Then

GoTo Ende2010

Else

GoTo NaechsteSpalte2010

End If

Ende2010:

Sheets("LinkDaten 2010").Visible = False


MsgBox "Done!"

End Sub

aloys78
03.07.2014, 09:35
Hallo,

probier mal den folgenden Code; damit müßte es ein wenig schneller gehen.

Gruß
Aloys

Option Explicit

Sub LinkErsetzen()
Dim Link As String
Dim Zelle As Range
Dim sZeit As Single
Dim r As Long 'Zeilen#
Dim c As Long 'Spalten#
Dim arr(1 To 372, 1 To 96)
sZeit = Timer
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
Sheets("LinkDaten 2010").Visible = True
With Worksheets("LinkDaten 2010")
For r = 8 To 379
For c = 5 To 100
Set Zelle = .Cells(r, c)
If Zelle.HasFormula = True Then
Link = Zelle.Value
arr(r - 7, c - 4) = "=" & Link
Else
arr(r - 7, c - 4) = Zelle
End If
Next c
Next r
.Range(.Cells(8, 5), .Cells(379, 100)) = arr
End With
Sheets("LinkDaten 2010").Visible = False
MsgBox "Done! " & "Zeit=" & Timer - sZeit
End Sub

Schtef90
08.07.2014, 13:24
Hey,

also ich habe den Code jetzt mal getestet.

Meine ersten Versuche zeigen eine Verbesserung auf ca. 10 Sekunden.

Das wäre ein 60-stel :D :D :D

Ich werde mal noch weiter rumprobieren, aber wenn sich das so bestätigt bin ich mega froh!!!!

Viiiiiiiel Dank im Voraus!!!!!!

Meld mich dann sobald ich genauere Ergebnisse habe.


Gruß