Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel-Verknüpfungen "einfrieren"

Frage Microsoft Microsoft Office

Mitglied: blauaklasse

blauaklasse (Level 1) - Jetzt verbinden

01.07.2005, aktualisiert 04.07.2005, 7246 Aufrufe, 2 Kommentare

Ich habe eine ganze Menge von Excel-Files (für jedes Jahr jeweils eine) in denen immer Verknüpfungen auf die Vorjahre enthalten sind, damit Vergleiche möglich sind (sind Finanzzahlen). Die ganz alten Files brauch ich eigentlich nicht mehr, kann die aber nicht löschen bzw. in einen Archivbereich verschiegen weil ich sonst nur noch Verknüpfungsfehler in allen Files bekomme .

Gibts eine Möglichkeit automatisch Verknüpfungen durch die aktuellen Werte zu ersetzten (manuell geht nicht, sonst dauerst Wochen bis ich da durch bin) und damit die Zahlen der alten Jahre einfrieren kann ?

Ich hab nichts gefunden - vielleicht kann mir jemand helfen.

Vielen Dank
Mitglied: 10545
01.07.2005 um 19:29 Uhr
Folgendes Makro:

Sub VerknuepfungenLoeschen()
Dim varLinks
Dim lngLinkCount As Long
Dim i As Long
Dim strLinkedFile As String
Dim lngChrPos As Long
Dim objRefName As Name
Dim strExtRef As String
Dim objWSh As Worksheet
Dim LinkRange As Range
Dim ar As Range

varLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If IsArray(varLinks) Then
lngLinkCount = UBound(varLinks)
For i = 1 To lngLinkCount
strLinkedFile = varLinks(i)
Do
lngChrPos = InStr(1, strLinkedFile, "\")
strLinkedFile = _
Right(strLinkedFile, _
Len(strLinkedFile) - lngChrPos)
Loop Until lngChrPos = 0
For Each objWSh In ActiveWorkbook.Worksheets
Set LinkRange = GetLinkRange(objWSh, _
strLinkedFile)
If Not LinkRange Is Nothing Then
For Each ar In LinkRange.Areas
ar.Value = ar.Value2
Next ar
End If
Next objWSh
Next i
End If
For Each objRefName In ActiveWorkbook.Names
If InStr(1, objRefName.RefersTo, ".xl") > 0 Then
strExtRef = objRefName.Name
For Each objWSh In ActiveWorkbook.Worksheets
Set LinkRange = GetLinkRange(objWSh, strExtRef)
If Not LinkRange Is Nothing Then
For Each ar In LinkRange.Areas
ar.Value = ar.Value2
Next ar
End If
Next objWSh
objRefName.Delete
End If
Next objRefName
End If
End Sub



Function GetLinkRange _
(objSheet As Worksheet, _
strSearchFor As String) _
As Range
Dim TempCell As Range
Dim TempRange As Range
Dim strTempAdr As String

With objSheet.UsedRange
Set TempCell = _
.Find _
(What:=strSearchFor, _
LookIn:=xlFormulas, _
LookAt:=xlPart)
If Not TempCell Is Nothing Then
strTempAdr = TempCell.Address
Set TempRange = TempCell
Do
Set TempCell = .FindNext(TempCell)
If Not TempCell Is Nothing Then
Set TempRange = Application.Union(TempRange, _
TempCell)
End If
Loop While _
Not TempCell Is Nothing _
And TempCell.Address <> strTempAdr
End If
End With
Set GetLinkRange = TempRange
End Function

Bitte <font color="red">vorher</font> ein Backup der Originale anlegen!!
Gruß, Rene
Bitte warten ..
Mitglied: blauaklasse
04.07.2005 um 07:51 Uhr
Hallo Rene,

danke - ist ja ziemlich aufwendig. Werd ich mir in einer ruhigen Minuten mal genauer anschauen und testen.
Sollts Probs geben würd ich mich nochmal melden.

Vorerst Danke
Uli
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst 3 Excel Dateien, gleich umkodieren? (5)

Frage von Akeipra zum Thema Microsoft Office ...

Outlook & Mail
Outlook 2016 Excel Preview

Frage von ilsinger zum Thema Outlook & Mail ...

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...

LAN, WAN, Wireless
Wie Gäste ins Internet bringen? (15)

Frage von xSiggix zum Thema LAN, WAN, Wireless ...

Linux
gelöst Schmaler Scrollbalken in Python-Anwendung (14)

Frage von indi955 zum Thema Linux ...