Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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

Wenn Datei nicht in folgenden Pfaden...

Wenn Datei nicht in folgenden Pfaden...
19.02.2021 18:31:07
Felix
Guten Abend zusammen,
ich nehme schon eine Weile die Hilfe dieses Forum in Anspruch, habe letztes Jahr ein wenig mit dem VBA-Programmieren angefangen, habe aber leider kaum Grundlagenkenntnisse, ich Versuche einfach manche anwendungsspezifischen Probleme damit zu lösen, also bitte seit nicht so hart zu mir ;)
Ich hab ein kleines Problem mit einem Workbook_Open()-Code und ich weiß nicht genau woran es liegt.
Leider kann ich die Arbeitsmappe nicht direkt zu Verfügung stellen, wegen interner Informationen, aber ich glaube der Code ist so einfach geschrieben, dass Ihn jeder versteht und Ihr wahrscheinlich sofort drei Möglichkeiten wisst um ihn zu vereinfachen.
Würde mich freuen wenn jemand drüber schauen mag und vielleicht meinen Fehler findet, freu mich über jede Hilfe!
Liebe Grüße Felix

Private Sub Workbook_Open()
If Application.UserName = "Felix Mauell" Or Application.UserName = "Markus Schraven" Or  _
_
_
Application.UserName = "Bernd Brunner" Or Application.UserName = "Norman Waschkowitz" Then
ActiveWorkbook.AutoSaveOn = False
Else
End If
With ThisWorkbook
If .Path = "https://toologicgmbh.sharepoint.com/sites/14-Mauell/Freigegebene Dokumente/General/  _
_
_
00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/05-Buschhaus/Freigegebene _
Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/07-Delic/ _
Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/08-Schiller/Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/10-Ankarali/Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/15-Schraven/Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/16-Ihlenfeld/Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/17-Ceke/Freigegebene Dokumente/General/00_Cockpit" Or .Path = "https://toologicgmbh.sharepoint.com/sites/20-Pakiela/Freigegebene Dokumente/General/00_Cockpit" Then
Worksheets("Abfrage ToolKit_Umsatz").Visible = 2
Worksheets("Umsatzverlauf").Visible = 2
Worksheets("Umsatzentwicklung").Visible = 2
Worksheets("Top 10 AW").Visible = 2
Worksheets("Flop 10 AW").Visible = 2
Worksheets("Top 10 Kunden").Visible = 2
Worksheets("Flop 10 Kunden").Visible = 2
Worksheets("Top 10 Artikel").Visible = 2
Worksheets("Flop 10 Artikel").Visible = 2
Worksheets("Cockpit (B)").Visible = 2
Worksheets("Cockpit").Visible = 1
Sheets("Cockpit").Activate
ActiveWindow.Zoom = 77
Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", False)"
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
ActiveWindow.DisplayHeadings = False
ThisWorkbook.Sheets("Cockpit").ScrollArea = "$A$1:$AH$70"
ActiveWorkbook.SlicerCaches("Datenschnitt_Vert_Nr").ClearManualFilter
ActiveWorkbook.SlicerCaches("Datenschnitt_Name").ClearManualFilter
ActiveWorkbook.SlicerCaches("Datenschnitt_AW_Gruppe").ClearManualFilter
ActiveWorkbook.SlicerCaches("Datenschnitt_AW_uGruppe_Bereich").ClearManualFilter
Worksheets("Cockpit").Protect Password:="XXXXX", DrawingObjects:=True, Contents: _
_
=True, Scenarios:=True _
, AllowUsingPivotTables:=True
Worksheets("Safety").Unprotect Password:="XXXXX"
Worksheets("Safety").Visible = 2
Else
Call MsgBox("Bye Bye", vbCritical, "Selfdestruct")
.Saved = True
Call .ChangeFileAccess(xlReadOnly)
Call Kill(Pathname:=.FullName)
Call .Close(savechanges:=False)
End If
End With
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
und was ist dein Problem? owT
19.02.2021 23:36:59
Rudi
AW: Wenn Datei nicht in folgenden Pfaden...
19.02.2021 23:42:28
Yal
Hallo Felix,
Freitag ist Ratespiel-Tag:
"Ich hab ein kleines Problem mit einem Workbook_Open()-Code" und der Helfer muss raten, was da nicht geht... ;-)
@Rudi: Komm! Rat mal mit.
Ich schätze mal: 4te Zeile von unten "Kill myself". Geht nicht solang die Datei offen ist. Schliesst Du die Datei, stoppt das Makro. Also Henne-Ei-Problem.
Abgesehen davon innerhalb einer Automatisierung immer sau-gefährlich. Kombiniert mit deiner VBA Selbsteinschätzung? Alarm. Beherzige Murphy's Law: was schief gehen kann, wird schief gehen. Irgendwann. Gilt auch für Profis. Dein Glück (felix felicis!) ist, dass es nicht funktioniert.
Ok, Sharepoint hat viele Schichten, aber mache so was NIE auf einem Netzlaufwerk, wenn Du nicht jemand persönlich beim Backup-Dienst kennst ("Back-was?":-)
Also: wandle diese Anweisung in einem Eintrag in einer separaten Todo-Liste "Datei zu löschen.xlsx". Vielleicht sogar bereit in Form Kill "https://toologic..", das Du direkt per copy-Paste ins VB-Editor (per Hand) ausführen kannst.
Wenn diese Löschliste jemals 100 Einträge in wenige Sekunden bekommt, wirst Du an mich denken.
VG
Yal
Anzeige
AW: Wenn Datei nicht in folgenden Pfaden...
20.02.2021 18:33:59
Felix
Hallo Yal, hallo Rudi :)
ja das stimmt ich hätte vielleicht dazu schreiben sollen, dass ich bei der Ausführung einen Laufzeitfehler ausgegeben bekommen habe, entschuldigt war schon etwas spät im Büro.
Tatsächlich kam dieser aber nur deshalb zustande weil ich bei einem vorherigen Test die Excel ausversehen in den ReadOnly-Mode versetzt habe.
Nachdem die Excel neu geöffnet wurde ist es so, dass der Code funktioniert.
Mich hätte eher eine Möglichkeit interessiert die Pfade kompatker und etwas sauberer Programmiert anzugeben, evetuell in Form einer Liste und dann nach Python-Manier "for i in liste -Pfade-" oder ähnliches.
Trotzdem vielen Dank für eure Hilfe :)
Anzeige
folgenden Pfaden...
22.02.2021 12:59:41
Yal
Hallo Manuell,
kann ich nachvollziehen. Sieht wild aus.
Erste möglichkeit "schöner" zu machen: auf den zeilenumbruch achten:
If .Path = "https://toologicgmbh.sharepoint.com/sites/14-Mauell/Freigegebene Dokumente/General/ _
00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/05-Buschhaus/Freigegebene Dokumente/ _
General/00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/07-Delic/Freigegebene Dokumente/General/ _
00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/08-Schiller/Freigegebene Dokumente/ _
General/00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/10-Ankarali/Freigegebene Dokumente/ _
General/00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/15-Schraven/Freigegebene Dokumente/ _
General/00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/16-Ihlenfeld/Freigegebene Dokumente/ _
General/00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/17-Ceke/Freigegebene Dokumente/General/ _
00_Cockpit" _
Or .Path = "https://toologicgmbh.sharepoint.com/sites/20-Pakiela/Freigegebene Dokumente/General/ _
00_Cockpit" Then

(wenn der Forum-Editor nicht dazwischen funkt)
Zweite Möglichkeit: in wiederholende Teile trennen und bewerten:
With ThisWorkbook
strUser = Split(.Path, "/")(4)
If InStr(1, .Path, "https://toologicgmbh.sharepoint.com/sites/") > 0 And _
InStr(1, "14-Mauell;05-Buschhaus;07-Delic;08-Schiller;10-Ankarali;15-Schraven;16-Ihlenfeld; _
17-Ceke;20-Pakiela", strUser) > 0 And _
InStr(1, .Path, "/Freigegebene Dokumente/General/00_Cockpit") > 0 Then
Eine andere Möglichkeit wäre einen Replace. Ist aber in dem Fall nur eine andere Form von Instr.
    For Each U In Split("14-Mauell;05-Buschhaus;07-Delic;08-Schiller;10-Ankarali;15-Schraven;16- _
Ihlenfeld;17-Ceke;20-Pakiela", ";")
If Replace(.Path, U, "xx") = "https://toologicgmbh.sharepoint.com/sites/xx/Freigegebene  _
Dokumente/General/00_Cockpit" Then
'... mache hier alles, oder rufe eine Sub
Exit For
End If
Next
Und, klar, RegEx geht auch.
Info über Split und Instr: markieren und Strg+F1 drücken.
VG
Yal
Anzeige
AW: folgenden Pfaden...
22.02.2021 14:47:47
Felix
Hallo Yal,
super ich danke dir, hat mir sehr geholfen :)
Viele Grüße
Felix

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige