Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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
Inhaltsverzeichnis

Excel VBA und Sharepoint

Excel VBA und Sharepoint
20.12.2021 09:59:34
Chrissi
Hallo zusammen,
ich habe ein Excel-Tool erstellt, das lokal Daten erhebt. Danach die Daten in dem Tool abspeichert, die Daten als Kopie in einer Sharepoint-Datei speichert, die Daten als PDF auf Sharepoint (oder in manchen Fällen lokal) speichert und als Email-Anhang einer neuen EMail anhängt (oder gleich abschickt).
In diesen Dateien arbeite ich mit diversen Makros. Dabei gibt es einige Befehle, die mir echte Schwierigkeiten bereiten.
Man glaub es kaum, aber es sind nicht die komplizierten Makros, die die Probleme verursachen, sondern die leichten, also Copy & paste oder einfache Formeln, die mir im Excel selbst kein Problem machen! Das Ganze wird vermutlich ein mehrteiliger Thread oder mehrere Threads geben.
Ich habe das Gefühl, daß ziemlich viele der Fehler auf Laufzeitprobleme basieren. Daher hoffe ich hier, es kann mir jemand helfen:
Beim Start des Dokumentes prüfe ich, ob lokal in der Datei das selbe Maximum vorkommt, wie online in der Absicherung. Dazu gehe ich wie folgt vor.

Sub Maximum ()
Workbooks.Open Filename:= _
"https://PFAD" 'SharepointSicherung öffnen
DoEvents 'Abwarten bis Datei geöffnet ist
Windows("Tool.xlsm").Activate 'zurück ins Tool springen
DoEvents 'Abwarten bis wieder im Tool zurück
Sheets("Maschinenraum").Range("C4").Formula = "=IF(ISERROR(VLOOKUP(R[-2]C[-1],'[DATEI.xlsx]Verwaltung'!R2C2,1,0)),""Differenz online"",""ok"")"
'Formel für Prüfung einfügen 'In Verwaltung'!R2C2 habe ich die Formel "MAX" verwendet. Dort wird das Maximum der dortigen Absicherung angezeigt
DoEvents 'Abwarten bis Formel eingetragen und berechnet ist
Sheets("Maschinenraum").Calculate 'weil das DoEvents manchmal nicht funktioniert hat, habe ich nochmals die Calculate Funktion verwendet.
DoEvents
If Sheets("Maschinenraum").Range("C4").Value = "Differenz online" Then
Sheets("Einstieg").Range("B22").Value = "Fehlermeldung"
Call Differenz_Email 'Email verschicken
Else
Sheets("Maschinenraum").Range("C4").ClearContents   'Formeln wieder entfernen, damit beim Start des Tools keine "Aktualisieren Frage" kommt
Sheets("Einstieg").Range("B22").ClearContents 'Zelle leeren
End If
End Sub
Meine Fragen:
Sorgt "DoEvents" tatsächlich dafür, daß eine Aktion abgeschlossen wird, oder nicht?
Welche Alternative hätte ich statt per Formel das Maximum der Absicherung mit dem Maximum der lokalen Datei zu vergleichen?
Ich öffne ja am Anfang die Absicherung. Danach springe ich wieder in die Arbeitsdatei (das Tool). Gibt es Alternativen zu diesem Vorgehen?
Ich hoffe mein Vorgehen ist etwas verständlich.
Vielen Dank im Voraus für Eure Unterstützung!
VG
Chrissi

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

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA und Sharepoint
20.12.2021 10:26:07
ralf_b
moin,
hol dir doch den Max-Wert mit Powerquery aus der Sharepoint Datei und dann hast du sie ohne den ganzen Zinnober ( Workbook_open usw.... ) als Wert in einer Zelle deiner Wahl.
AW: Excel VBA und Sharepoint
20.12.2021 11:35:26
Chrissi
Danke für den Hinweis.
Ich kenne PowerPivot noch nicht besonders gut, habe es bisher nur ein einziges Mal einmalig verwendet.
Würde diese Lösung auch funktionieren, wenn sie von unterschiedlichen Usern ausgeführt werden würde, oder ist diese Lösung mit PowerPivot an User gebunden (die dieses Addin aktiv haben müssen)?
VG
PowerQuery ist nicht PowerPivot ... owt
20.12.2021 11:49:38
ralf_b
AW: PowerQuery ist nicht PowerPivot ... owt
20.12.2021 15:06:50
Chrissi
Danke! Somit konnte ich diesen Baustein schon einmal deutlich einfacher gestalten!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige