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, 7244 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel: Einzelne Zeilen einer mehrzeiligen Zelle auslesen (3)

Frage von Booster07 zum Thema Microsoft Office ...

Microsoft Office
CSV-Converter deaktiviert Add-ins in Excel (2)

Frage von freeskierchris zum Thema Microsoft Office ...

VB for Applications
Excel Makro zum Suchen von Spalten und exportieren in CSV (3)

Frage von Raptox zum Thema VB for Applications ...

Microsoft Office
Excel Zählewenn aus Formel Wert (2)

Frage von cberndt zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Multimedia & Zubehör
gelöst Iphone 6 prob (12)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...