Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verknüpfung lösen

Verknüpfung lösen
15.06.2005 07:43:15
GeorgK
Hallo und guten Morgen,
nachdem ich seit gestern in allen möglich Foren und Archiven nach einer Lösung gesucht habe, möchte ich mein Problem hier mal vorstellen.
Mit dem nachfolgenden Makro versende ich per E-Mail eine Kopie eines Tabellenblatts. Es werden keinerlei Formatierungen übernommen. Über Str.+# sind keine Verknüpfungen zu erkennen. Trotzdem zeigt er mir unter Bearbeiten eine Verknüpfung an. Die Verknüpfung bezieht sich auf die Ursprungsdatei. Da der E-Mailversand per Makro gestartet wird, kann ich die Verknüpfung durch Bezug auf diese kopierte Datei auch nicht auflösen. Da das ganze auf verschiedenen Rechner genutzt wird und die Kopie immer einen anderen Namen, MappeXX, erhält, weiss ich hier nicht mehr weiter.
Ich brauche so etwas, wie Kopie ohne externe Verknüpfung.
Hier mal der Makro, vielleicht kann mir ja jemand helfen

Sub SendTab_2()
Application.ScreenUpdating = False
Dim wks As Worksheet
Application.ScreenUpdating = False
Set wks = ActiveSheet
Worksheets(Range("S1").Value).Copy
ActiveWorkbook.SendMail wks.Range("S2").Value, wks.Range("S3").Value
ActiveWorkbook.Close savechanges:=False
Sheets("Start").Select
Application.ScreenUpdating = True
End Sub

Vielen Dank und Grüße
Georg

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfung lösen
15.06.2005 08:13:41
Rene
Hi so was gibts hier schon im Archiv.
Fast genau das gleiche Problem hatte letztens auch jemand, und da habe ich auch schon ne lösung geschickt, die steht hier irgendwo im Archiv
gruss René
AW: Teillösung?
15.06.2005 08:15:35
GeorgK
Hallo,
ich habe bei meiner weiteren Suche nachfolgenden Makro gefunden, der meine Verknüpfung löst. Kleiner Nachteil noch, es erscheint eine MsgBox. Was muss verändert werden, damit die Verknüpfungen ohne diese Abfrage direkt gelöst werden?
Hier der 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
If MsgBox("Wollen Sie alle externen " & _
"Verknuepfungen loeschen und durch die " & _
"entsprechenden Werte ersetzen?", vbYesNo) _
= vbYes Then
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

Vielen Dank und Grüße
Georg
Anzeige
AW: Teillösung?
15.06.2005 08:28:12
Rene
Lösche ein fach diesen Part und das zugehörige "End if"
If MsgBox("Wollen Sie alle externen " & _
"Verknuepfungen loeschen und durch die " & _
"entsprechenden Werte ersetzen?", vbYesNo) _
= vbYes Then
gruss René
Bitte Rückmeldung
AW: Teillösung?
15.06.2005 15:42:30
GeorgK
Hallo René,
vielen Dank für Deine Hilfe. Funktioniert.
Konnte mich erst jetzt wieder diesem Problem zuwenden.
Grüße
Georg

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige