Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verknüpfunge PP-Excel nach Änderung aktualisieren

Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 09:38:20
Anja
Hallo allerseits,...
Ich habe wieder ein Problem:
gsetern hatte ich ein Problem die PPDatei von Excel öffnen und Verknüpfungen automatisch aktualiseren... ein netter Profi Rainer hat mir geholfen (und die entsprechende Code gegeben----> Danke :)) Und es funktioniert sehr gut..
Nun habe ich dann gedacht, die Excel Datei, von der aktualisiert wird kann ja
unbenannt werden zb. Es War KPI-Tool_19_07.xls in einige Zeit wird das
in KPI_Tool_07_09.xls unbenant...
und wenn ich in der KPI_Tool_07_09.xls meine PP öffne wird das von
KPI-Tool_19_07.xls aktualisiert... und das ist nicht ganz korrekt...
ich weiß zwar dass in PowerPoint eine Manuelle Möglichkeit gibt das Problem zu lösen, über -> Verknüpfnuge ändern, aber das geht nur wenni ch für jede Folie einzeln Verknüpfung ändere, und Folien habe ich über 30...
Giebt es vielleicht irgendwelche elegante und schnellere lösung
Hier ist die Code, die mir gestern Rainer gegeben hat, mag sein dass sie vielleicht auf die Sprunge helfen kann...
Ich danke für eure Mühe: und werde mich rieeeeesig freuen wenn es funktioniert... :)
Viele Grüße
Anja

Sub PowerPointStarten()
Dim ppApp As Object
Dim ppP As Object
Dim sFile As String
Dim sh As Object
Dim i As Integer
Dim j As Integer
sFile = ThisWorkbook.Path & "\POWER_POINT_KPI\KPI.ppt"
If Dir(sFile) = "" Then
Beep
MsgBox "Die Datei " & sFile & " existiert nicht!"
Exit Sub
End If
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = msoTrue
Set ppP = ppApp.Presentations.Open(sFile)
'Verknüpfungen updaten
For i = 1 To ppP.Slides.Count
For Each sh In ppP.Slides(i).Shapes
If sh.Type = msoLinkedOLEObject Then
With sh.LinkFormat
.Update
End With
End If
Next
Next i
ppP.SlideShowSettings.Run
'  ppApp.Quit
Set ppP = Nothing
Set ppApp = Nothing
End Sub

:)
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
Ramses
Hallo
ungetestet, und ich weiss nicht ob es geht.
Aber probier mal
With sh.LinkFormat
.SourceFullName = "c:\deinPfad\KPI_Tool_07_09.xls"
.Update
End With
Alternativ könnte der String zum Dateinamen in eine Variable gepackt werden.
Gruss Rainer
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 10:12:31
Anja
Hi,
vielen Dank , es funktioniert...,
aber das Problem ist, im Code muss man dann doch constanten Pfad eingeben (bzw Name von der Excel Datei)... Das ist natürlich für die Nutzer sehr umständlich....
Na ja ich überlege es mir noch,... aber wenn du noch Ideen hast, bin ich nur immer froh... ;)
Viele Grüsse
Anja
Anzeige
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 10:53:15
Anja
Hallo noch mal...
ich habe mich geirrt, das funktioniert doch nicht...
etwas mit Schreibweise nicht stimmt .SourceFullName..
:(
ich habe nach datum geschaut, habe ganz vergessen dass heute schon 20 ist...
Sorry
Hast du vielleicht noch Ideen?
Gruß
Anja
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
Ramses
Hallo
bin gerade was am basteln
Welche EXCEL Version verwendest du ?
Beim Update der ".SourceFullName" muss noch der Bezug auf das jeweilige Object in der Tabelle hergestellt werden.
Wenn du nur den Dateinamen angibst, verweist PP auf die erste Tabelle in der Mappe.
Gruss Rainer
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 12:18:23
Anja
Hallo Rainer,
ich habe Office10...
Mannnn, das klappt nicht...
Wie soll ich den den Bezug auf die Objekte erstellen?
doch nicht so...
.SourceFullName= "...\\Letzt_Version\Cat_Ford\Cat_Ford_19_07_2004.xls"
.msoLinkedOLEObject
.Update
:´(
Gruß
Anja
.....
Anzeige
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
Ramses
Hallo
man bin ich bescheuert,.. ich habe den Beitrag tatsächlich überlesen / nicht gesehen :-(
Ich habe im forum noch einen direkten Beitrag an dich gesendet.
Nun ist er halt doppelt :-(


'Begin Code Sequenz
Const ppPresName As String = "\POWER_POINT_KPI\KPI.ppt"
Const LinkIni As String = "\POWER_POINT_KPI\ppLink.ini"
Sub PP_Presentation_Start_and_Update_ObjectLinks()
'(C) Ramses
'Eine Powerpoint Präsentation enthält verschiedene verknüpfte Objecte auf eine EXCEL Tabelle
'Der Namen dieser Tabelle ändert sich jedoch immer wieder
'Um die manuellen Anpassungen zu umgehen werden diese automatisch upgedatet
'
'Dazu wird eine INI Datei angelegt in welcher die alte Verknüpfungsdatei gespeichert wird
'Existiert noch keine, wird eine INI Datei angelegt mit dem Bezug auf die AKTUELLE ARBEITSMAPPE
'Die Objecte in der Präsentation MÜSSEN beim erstmaligen Start also auf
'die aktuell geöffnete Mappe mit diesem Makro verweisen
'
'Beim starten wird dann gefragt ob auf eine neue Mappe Bezug genommen werden soll,
'der Benutzer wählt eine neue Datei aus ( Diese Datei MUSS Identisch sein mit der Originaldatei )
'd.h. die ursprünglich erstellte Datei darf nur unter einem anderen Namen gespeichert werden !!!
'Die Objectnamen dürfen NICHT geändert werden !!!
'
'Die Tabelle kann kaskadieren nach dem Vater - Sohn Prinzip
'Aus der Sohn-Tabelle können weitere Objecte in die Präsentation kopiert werden
'wenn die Objecte mit den neuen Werten auf diese Sohn Tabelle verweisen
'Bei einem Verweis auf die VATERTABELLE werden die Objecte in der Präsentation
'die in der Sohn-Tabelle vorhanden sind, nicht mehr dargestellt!!
'************************
'Integer Delaration
Dim As Integer, Qe As Integer
'Object Deklaration
Dim ppApp As Object, ppPres As Object, sh As Object
'String Deklaration
Dim ppFile As String, iniFile As String
Dim LinkFile As String, oldLinkfile As String, NewLinkfile As String
Dim tmpLink As String, onlyOldFileName As String, onlyNewFileName As String, cBSl As Integer
'Variablen füllen
NewLinkfile = ""
'Prüfen ob PP-Datei vorhanden
ppFile = ThisWorkbook.path & ppPresName
If Dir(ppFile) = "" Then
      Beep
      Qe = MsgBox("Die Datei " & ppFile & " existiert nicht!", vbCritical + vbOKOnly, "Datei Fehler")
      Exit Sub
End If
'Zwischenspeichern des Namens für die Quelldatei
iniFile = ThisWorkbook.path & LinkIni
'Prüfen ob INI Datei vorhanden
If Dir(iniFile) = "" Then
    Qe = MsgBox("Die Datei " & Chr$(13) & iniFile & Chr$(13) & "wurde noch nicht definiert," & Chr$(13) & _
        "Es wird eine neue " & Chr$(13) & LinkIni & Chr$(13) & "erstellt mit der Quelle zu " & Chr$(13) & _
        ThisWorkbook.FullName, vbInformation + vbOKCancel, "Source Fehler")
    If Qe = vbCancel Then
        Qe = MsgBox("Das Erstellen der Datei " & Chr$(13) & _
            LinkIni & Chr$(13) & _
            " wurde abgebrochen," & Chr$(13) & _
            "Das Makro zum Starten der Präsentation wird " & Chr(13) & _
            "gestoppt und die PP Links nicht upgedatet !", vbInformation + vbOKOnly, "Source Fehler")
            Exit Sub
    End If
    'Erstellen einer neuen Link.ini
    Open iniFile For Output As #1
        'Schreiben der aktuell geöffneten Datei als Verknüpfung
        Print #1, ThisWorkbook.FullName
    Close #1
End If
'Schliessen einer eventuell geöffneten INI-Datei
Close #1
'Der Speicherort der INI Datei wird in der Const LiniIni definiert
Open iniFile For Input As #1
Do While Not EOF(1)
    'Einlesen der SourceQuelle für die Präsentation
    Input #1, oldLinkfile
Loop
'Schliessen der Datei
Close #1
'Abfrage ob neue Verknüpfungdatei definiert werden soll
Qe = MsgBox("Die aktuelle Verknüpfungdatei von " & Chr$(13) & ppPresName & Chr$(13) & _
    "ist derzeit die Datei " & Chr$(13) & _
    oldLinkfile & "." & Chr$(13) & _
    "Soll die Verknüpfungsdatei geändert werden ?", vbQuestion + vbYesNo, "Source Definition")
If Qe = vbYes Then
    'Wenn ja
    NewLinkfile = Application.GetOpenFilename("XLS Dateien (*.xls),", True, "Neue Verknüpfungsdatei auswählen", "Übernehmen", False)
    'sicherheitsabfrage
    Qe = MsgBox("Soll die Datei " & Chr$(13) & NewLinkfile & Chr$(13) & "als neue Verknüpfung definiert werden?", _
        vbQuestion + vbOKCancel, "Source Definition")
    If Qe = vbNo Then
        'Verwendung der bisherigen Datei um Update der Präsentation
        Qe = MsgBox("Die Definition der Datei" & Chr$(13) & _
            NewLinkfile & Chr$(13) & _
            " wurde abgebrochen," & Chr$(13) & _
            "Es wird die alte Datei " & oldLinkfile & "verwendet !", vbInformation + vbOKOnly, "Source Definition")
    Else
        'Neue Linkdatei wird geschrieben und zum Update verwendet
        Open iniFile For Output As #1
        'Schreiben der aktuell geöffneten Datei als Verknüpfung
            Write #1, NewLinkfile
        Close #1
    End If
End If
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = msoTrue
Set ppPres = ppApp.Presentations.Open(ppFile)
'---------------------
'Verknüpfungen updaten
'Wenn die Verknüpfungdatei nicht geändert wurde
'werden nur die Werte aktualisiert
If NewLinkfile = "" Then
    For i = 1 To ppPres.Slides.count
        For Each sh In ppPres.Slides(i).Shapes
            If sh.Type = msoLinkedOLEObject Then
                With sh.LinkFormat
                    .Update
                End With
            End If
        Next
    Next i
Else
    'Die Verknüpfungsdatei wurde geändert
    'Dazu muss der Filenamen extrahiert werden
    'den die directen Object Bezüge müssen ebenfalls angepasst werden
    'Variante für alle Excel Versionen
    cBSl = 0
    For i = Len(oldLinkfile) To Step -1
        If Mid(oldLinkfile, i, 1) = "\" Then
            onlyOldFileName = Right(oldLinkfile, Len(oldLinkfile) - i)
            Exit For
        End If
    Next i
    cBSl = 0
    For i = Len(NewLinkfile) To Step -1
        If Mid(NewLinkfile, i, 1) = "\" Then
            onlyNewFileName = Right(NewLinkfile, Len(NewLinkfile) - i)
            Exit For
        End If
    Next i
    For i = 1 To ppPres.Slides.count
        For Each sh In ppPres.Slides(i).Shapes
            If sh.Type = msoLinkedOLEObject Then
                With sh.LinkFormat
                    'Externen Filebezug updaten
                    tmpLink = Replace(.SourceFullName, oldLinkfile, NewLinkfile, 1)
                    'Updaten der direkten Object Bezüge
                    tmpLink = Replace(tmpLink, onlyOldFileName, onlyNewFileName, 1)
                    .SourceFullName = tmpLink
                    .Update
                End With
            End If
        Next
    Next i
End If
'---------------------
ppPres.SlideShowSettings.Run
'ppApp.Quit
Set ppPres = Nothing
Set ppApp = Nothing
End Sub


Der code wurde getestet und funktioniert eigentlich auch.
Gruss Rainer
Anzeige
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 13:39:40
Anja
O mein Gott :)
soo viel ... danke dir...
Ich probiere das gleich aus... warte mal...
Ich sage dir dann sofort Bescheid... wenn es so weit ist..
bis dann
Gruß
Anja
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 14:03:06
Anja
Hi.
du bist ein Schatz...
Es Funktioniert tatsächlich...
Was würde ich nur ohne dich tun...
Ich danke dir viel viel Mals ;)
Viele Grüße
Anja
PS: sag mal machst du das Hobbymässig? hier allen zu helfen...
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
Ramses
Hallo
Ob ich das hobbymässig mache ?
Ja, ... Bezahlung gibt's keine,... ausser neues Wissen :-))
"..Ich danke dir viel viel Mals ;).."
Bist du aus der Schweiz ?
Gruss Rainer
Anzeige
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 14:33:44
Anja
:)
Nein ich bin nicht aus der Schweiz...
Momentan Lebe ich in der Nähe von Frankfurt, aber geboren bin ich in Sibirien...
Ich mache momentan Praktikum deswegen bin ganze Zeit hier... im Forum in der Hoffnung, dass mir ab und zu jemand hilft... ;) so wie du...
A pro po Hilfe... weiss du vielleicht wie man bei der Pivo-Diagram
die Farben selbst bestimmen kann... und möglichst ohne Macro...
mit Macro habe ich schon gemacht... das funktioniert zwar aber ist irgend wie umständlich... also nicht so optimale Lösung..
Viele Grüße
Anja
PS: und was machst du sonst... studierst oder so? :)
Anzeige
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
Ramses
Hallo
Nein, ich studiere nicht mehr, höchstens das tägliche Leben ;-)
Mit den Farben bin ich überfragt. Die werden von EXCEL standardmässig vergeben.
Änderungen sind da nur manuell möglich.
Gruss Rainer
AW: Verknüpfunge PP-Excel nach Änderung aktualisieren
20.07.2004 16:08:38
Anja
Na ja ist nicht schlimm...
Danke trotzdem...
Viele Grüsse
PS: viel Spass beim LEBENS-Studium... oder besser gesagt .. viel Erfolg ;)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige