Nach zwei Stunden Babysitten glaube ich, dass ich doch keine Kinder, sondern lieber etwas Harmloseres möchte. Krokodile zum Beispiel. Oder Löwen.
Hallo Excel-Meister
ich arbeite an einem VBA – Projekt, dass aus Power BI Dateien die Metadaten rauslesen soll.
Das Auslesen geschieht über Power Query (what else….), aber ich muss noch ein paar Prüfungen mit VBA erstellen und insbesondere die Power Query Abfragen on the fly erstellen. Letzteres geht problemlos.
Der Ablauf:
- Prüfe, ob User die pbix geöffnet hat.
- Falls nicht, bitte freundlich darauf aufmerksam machen
- Falls nein, Abbruch – falls ja, pbix öffnen.
Bis dahin klappt alles.
Nun kommt der Punkt, wo der Benutzer sich gegenüber der Power BI Datei authentifizieren muss, nachdem er ja gesagt hat.
falls er aber den Dialog hier abbricht (…..DAU…….), kommt eine „schöne“ Meldung:
Nun meine Frage:
Wie kann ich hier meine eigene Meldung einbauen und vor allem, wie fange ich das ab?
Bin schon voller Zweifel…..
Merci, lieber René für deine Geduld mit mir
Freundliche Grüsse Hans Peter
########################################
die unwissenden erleuchten sich selber
habs gefunden. nach Drücken von „Senden“ fiel es mir wieder ein, da stand was im Buch von René
ich danke dir!
Hier der Code, falls es dich interessiert.
Sub GetData()
‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
‚ Code erstellt durch: Pfister BI Consulting GmbH
‚ Zweck: Holt Metadaten aus der Power BI Datei
‚ Erstelldatum: 8.3.2021
‚ Aenderungsdatum:
‚XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
‚Testen, ob pbix Datei geöffnet ist. Falls nicht, Mesagebox und fragen, ob sie geöffnet werden soll. Fall nicht, Abbruch
If Dateigeoeffnet(Range(„Dateipfad_PBIX_Original“)) = False Then
If MsgBox(„Die Datei muss geöffnet sein. “ & Chr(10) & “ Soll die Datei geöffnet werden?“, vbYesNo, „Power BI Datei öffnen?“) = vbNo Then
Exit Sub
Else: Call Open_PBIX
Application.Wait (Now + TimeValue(„0:00:10“))
End If
End If
’notwendige Abfragen aktualisieren
Abfragen_starten:
On Error GoTo ErrHandler
ActiveWorkbook.Connections(„Abfrage – Tabellen“).Refresh ‚Teil Abfrage – “ muss unbedingt vermerkt sein!
ActiveWorkbook.Connections(„Abfrage – Memory Usage Tabellen“).Refresh ‚Teil Abfrage – “ muss unbedingt vermerkt sein!
ActiveWorkbook.Connections(„Abfrage – Tabellenliste“).Refresh ‚Teil Abfrage – “ muss unbedingt vermerkt sein!
ActiveWorkbook.Connections(„Abfrage – Liste nicht geladene Queries“).Refresh ‚Teil Abfrage – “ muss unbedingt vermerkt sein!
ActiveWorkbook.Connections(„Abfrage – Abfragen – nicht geladen“).Refresh ‚Teil Abfrage – “ muss unbedingt vermerkt sein!
Call Listen_befuellen
ErrHandler:
‚Fehler No. 1004 abfangen
If Err = 1004 Then
If MsgBox(„Soll der Prozess abgebrochen werden?“, vbYesNo, „Bitte Identifikation vornehmen“) = vbYes Then
Exit Sub
’sonst Abfrage wieder aufnehmen
Else: Resume Abfragen_starten
End If
End If
End Sub
Gruss Hp
Super. Vielen Dank für den Code.