Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Verknüpfung mit Variable


Betrifft: Verknüpfung mit Variable von: Peter
Geschrieben am: 15.04.2017 08:08:57

Guten Morgen,

kurz mein Ziel, dass ich erreichen möchte: Beim Öffnen einer Datei soll ein Wert aus einer anderen Exceldatei geholt und eingetragen werden. Die Pfade unterscheiden sich jedoch bei zwei Rechner. Variablen (%Spaces%) sind ja nicht möglich.

Dann habe ich mit workbook open den Namen des Rechners geholt Range("A1").Value = Environ("COMPUTERNAME") und mit

=wenn([ziel.xlsm]Berechnung!$A$1="Notebook";'C:\pfad1\[quelle.xlsm]Ausgleich'!$I$1;'D:\pfad2\[quelle.xlsm]Ausgleich'!$I$1

das abgefangen. Im Prinzip funktioniert das auch, allerdings kommt beim Notebook dennoch der Hinweis auf Verküpfungsprorbleme. Wenn ich das Fenster schließe, läuft alles super.

→ als ob die Verküpfungsprüfung vor der workbook open Prozedur abläuft.

Nun meine Fragen:

Wie kann ich das ändern bzw. gibt es eine einfache (blutiger Anfänger) VBA-Lösung?

Freundliche Grüße
Peter

  

Betrifft: AW: Verknüpfung mit Variable von: ChrisL
Geschrieben am: 15.04.2017 09:52:04

Hi Peter

Gibt es vielleicht weitere Verknüpfungen z.B. in einem definierten "Namen"?

cu
Chris


  

Betrifft: AW: Verknüpfung mit Variable von: Peter
Geschrieben am: 15.04.2017 10:05:22

Hi Chris,

nein. Wenn ich mit der Fehlermeldung die Verknüpfungen bearbeite, zeigt er mir auch genau diese Zelle an, es geht also wirklich um Pfad 1 vs. Pfad 2.

LG
Peter


  

Betrifft: AW: Verknüpfung mit Variable von: Peter
Geschrieben am: 15.04.2017 10:45:44

... und wenn ich die "Fehlermeldung wegklicke, holt er sich brav den erst dann vorhandenen Eintrag mit dem Computernamen und macht das brav.

Die Reihenfolge der Abarbeitung scheint schlicht nicht zu stimmen.


  

Betrifft: AW: Verknüpfung mit Variable von: Mullit
Geschrieben am: 15.04.2017 13:11:52

Hallo,

→ als ob die Verküpfungsprüfung vor der workbook open Prozedur abläuft.

das könnte sein, dann mach doch folgendes, anstatt die Formel hart in die Mappe zu kodieren, schreib sie auch mit VBA rein, nachdem Du den Namen gezogen hast, im Close-Event könntest Du sie wieder löschen..

Gruß, Mullit


  

Betrifft: AW: Verknüpfung mit Variable von: Peter
Geschrieben am: 15.04.2017 13:18:46

Danke, Mullit,

genau daran scheitere ich. Mit VBA könnte ich ja auch Variablen übergeben. Aber all mein VBA-Wissen ist rein theoretischer Natur. Ich weiß schlicht nicht, wie das hier geht.

LG
Peter


  

Betrifft: AW: Verknüpfung mit Variable von: Mullit
Geschrieben am: 15.04.2017 16:40:40

Hallo,

hmm ja aus der hohlen Hand n bißchen schwierig, aber mal n Versuch, wenn die Formel bspw in B1 steht dann im Prinzip so, Du müsstest allerdings die Mappe zum Löschen immer abspeichern, vielleicht ginge es auch ganz ohne Formel...

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not Saved Then
        Select Case MsgBox("Sollen Ihre Änderungen in '" & Name & _
            "' gespeichert werden?", vbExclamation Or vbYesNoCancel)
            Case vbYes
                Call Worksheets("Berechnung").Range("B1").ClearContents
                Call Save
            Case vbNo
                Saved = True
            Case vbCancel
                Cancel = True
        End Select
    End If
End Sub

Private Sub Workbook_Open()
With Worksheets("Berechnung")
    .Range("A1").Value = Environ("COMPUTERNAME")
    .Range("B1").Formula = "=IF([ziel.xlsm]Berechnung!$A$1=""Notebook"",'C:\pfad1\[quelle.xlsm] _
Ausgleich'!$I$1,'D:\pfad2\[quelle.xlsm]Ausgleich'!$I$1)"
End With
End Sub

Gruß, Mullit


  

Betrifft: AW: Verknüpfung mit Variable von: Peter
Geschrieben am: 15.04.2017 17:59:22

Vielen Dank, Mullit,

ich werde es versuchen. Das ist tatsächlich ein Wunsch für die hohle Hand gewesen, umso mehr gebührt Dir Achtung.

LG
Peter


Beiträge aus den Excel-Beispielen zum Thema "Verknüpfung mit Variable"