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

Problem mit folgendem Makro (Anpassung)

Problem mit folgendem Makro (Anpassung)
08.01.2004 11:26:59
Martin
Zu meinem Promblem von heute morgen:
Die Arbeitsmappen (sagen wir A und die Datenbank B, beides geschützte Excel-Mappen) werden auf unterschiedlichen PC und in unterschiedlichen Verzeichnissen als Vorlage *.xlt abgespeichert. Die Arbeitsmappe A wird vom Benutzer ausgefüllt und verändert, während dem die Arbeitsmappe B als Datenbank unverändert bestehen bleibt. Die unterschiedlichen Benutzer sollten nun die Arbeitsmappe A (sämtliche Blätter sind geschützt)an mich zurücksenden. Beim mir sollten nun die Verknüpfungen der Arbeitsmappe A automatisch auf meine Datenbank B (am Speicherort X) aktualisiert werden, so dass ich nicht jedesmal bei sämtlichen Blättern den Blattschutz aufheben muss, um anschliessend über Bearbeiten, Verknüpfungen diese auf meine Datenbank (B) zu verweisen und anschliessend wieder sämtliche Blätter (ca. 20) wieder schützen muss.
Habe ich dieses Makro gefunden, aber ich kann dies nicht effektiv auf mein obengenanntes Problem umwandeln!!


Sub LinkUmleitung()
Dim var As Variant
Dim iCounter As Integer
Dim sName As String, sPath As String, sExt As String
sPath = ThisWorkbook.Path & "c:\"
sExt = ".xls"
sName = InputBox( _
prompt:="Quellarbeitsmappe:", _
Default:="test2")
If sName = "" Then Exit Sub
sName = sPath & sName & sExt
var = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(var) Then
For iCounter = 1 To UBound(var)
ActiveWorkbook.ChangeLink _
Name:=var(iCounter), newname:=sName
Next iCounter
End If
End Sub

Denn gemäss diesem Makro ergibt es eine Zusammensetzung des path aus dem "Test.2" und dem aktuellen Speicherort der Arbeitsmappe.
Aber ich möchte ja nur die bestehenden Links umverknüpfen auf die Datenbank namens (AW.xls), welche irgendwo auf den unterschiedlichen Arbeitsplätzen abgespeichert wurde.
Kann mir jemand helfen???
Danke im voraus für eure hilfe.
gruss
Martin

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

Betreff
Datum
Anwender
Anzeige
AW: Problem mit folgendem Makro (Anpassung)
08.01.2004 11:37:29
Ulf
Ohne den Code gestestet zu haben, das kann nicht stimmen:
sPath = ThisWorkbook.Path & "c:\"

Ulf
AW: Problem mit folgendem Makro (Anpassung)
08.01.2004 12:00:54
Martin
Hallo Ulf
Danke für Deine rasche Meldung.
Ich habe den Teil (ThisWorkbook.Path &) gelöscht und nun zeigt sich ein Laufzeitfehler '1004'in folgender Zeile
ActiveWorkbook.ChangeLink _
Name:=var(iCounter), newname:=sName
Zudem trifft folgendes zusätzliches Problem auf:
Inexistente Verknüpfungen (da aus die zugestellte Mappe auf eine falsche Verknüpfung verweist) werden nicht angepasst.
Wenn Du mir da weiterhelfen kannst, wäre ich sehr sehr froh.
Offenbar ist das Problem doch etwas komplizierter als ich gedacht habe.
Einen guten Appetit wünscht
Martin
Anzeige
AW: Problem mit folgendem Makro (Anpassung)
08.01.2004 12:13:37
Ulf
Ich will das nicht alles nachbauen, aber das muss wohl erhalten bleiben:
sPath = ThisWorkbook.Path
Ulf
AW: Problem mit folgendem Makro (Anpassung)
08.01.2004 14:42:55
Martin W
Hallo Ulf
Nochmals vielen Dank ich bin nun einen grossen Schritt vorwärts gekommen und habe das Makro ein wenig umgestellt, so dass es nach dem Pfad und nicht nach dem Dateinamen fragt.
Die Datei kommt bekanntlich per E-Mail an mich und soll auf die Datenbank "Datenbank-EW.xls" auf meinem PC verweisen (Die gesendete Datei verweist auf einen falschen Pfad gemäss dem Speicherort des Absenders). Nun geht alles gut bis auf Folgendes...
1. Sämtliche Arbeitsblätter müssen vor dem "aktualisieren" eingeblendet und der Blattschutz muss bei allen aufgehoben werden. Erst dann kann das Makro fehlerfrei gestartet werden.
2. Komischerweise wird immer noch nach der "alten" Datenbank-EW.xls gefragt. Nachdem ich auf die korrekte verweise, wird diese nicht angenommen, so dass nur noch "abbrechen" übrigbleibt. Dennoch werden dannach alle Verknüpfungen korrekt gewechselt.
3. Nach der Aktualisierung müssen wieder alle Blätter geschützt werden und einige davon müssen ausgeblendet werden. Schliesslich kann ich die Datei abspeichern.
Dieses Vorgehen ist mir immer noch zu umständlich, so dass ich nach weiteren Vereinfachungen suche. Eine zusätzliche Gefahr besteht zudem, sollte einmal der Dateiname "Datenbank-EW.xls" verändert werden und wird in der folge auf eine andere Tabelle (mit ungleichen Arbeitsblättern) verwiesen, kann dass Makro sämtliche Verknüpfungen zerstören, da diese auf falsche Arbeitsblätter verweisen. Dies kann dann nicht mehr rückgängig gemacht werden. Also muss ich wohl sehr vorsichtig damit umgehen.
Vielen Dank nochmals und wenn Du oder jemand anderst eine Verbesserung bzw. Korrektur anbringen könnte, ... um so besser!
Schönen Tag und Danke
Martin W.

Sub LinkUmleitung()
Dim var As Variant
Dim iCounter As Integer
Dim sName As String, sPath As String, sExt As String
sPath = InputBox( _
prompt:="Pfadangabe:", _
Default:="R:\MITARBEI\Datenbank\")
sExt = ".xls"
sName = "Datenbank-EW"
If sPath = "" Then Exit Sub
sName = sPath & sName & sExt
var = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(var) Then
For iCounter = 1 To UBound(var)
ActiveWorkbook.ChangeLink _
Name:=var(iCounter), newname:=sName
Next iCounter
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige