Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro laeuft bei mir aber nicht bei Kollege - Woran liegt das?
#1
Hallo,

ich habe das folgende Makro.
Die einzelnen Laender Dateien (DE, AT, PL usw.) liegen auf einem Sharedrive
Auf meinem Rechner laeuft das Makro ohne Probleme durch (Makro oeffnet die Dateien, aktualisiert Verknuepfung, speichert und schliesst die Laenderdatei)
Bei meinen amerikanischen Kollegen funktioniert es nicht sauber. Excel fragt staendig beim Schliessen jeder LaenderDatei ob die Datei (e.g. DE_Masterfile.xlsm) ersetzt werden soll weil eine Datei mit gleichen Namen bereits existiert.

Das zweite Problem: Bei der datei "DE_Masterfile" fragt das Makro die amerikanischen Kollegen nach dem passwort - auf meinem Rechner keine Extra Nachfrage - es laeuft sauber durch.

Woran kann das liegen? 
Liegt es vielleicht daran dass die Serverrueckmeldung zu lange braucht? Laenderdatei ist eigentlich geschlossen aber diese Statusmeldung ist noch nicht angekommen, das Makro denkt dass die Datei noch offen ist und fragt dann nach dempasswort zum oeffnen und bei schliessen for "replace file" as it already exists with same name??


Vielen Dank

Code:
Sub Makro4()
 Dim strVerzeichnis As String
 Dim strDatei As String
 Dim StrTyp As String
 strVerzeichnis = "\\corporate treasury\Daily Reporting Receipts & Disbursement\"
 StrTyp = "*.xlsm"
 strDatei = Dir(strVerzeichnis & StrTyp)
 Do While strDatei <> ""
     Workbooks.Open Filename:=strVerzeichnis & strDatei, Password:=HolePasswort(strDatei)
     ThisWorkbook.ChangeLink Name:=strDatei, NewName:=strDatei, Type:=xlExcelLinks
     ActiveWorkbook.Save
     ActiveWorkbook.Close True
     strDatei = Dir
 Loop
End Sub

Private Function HolePasswort(strDatei As String) As String
Select Case strDatei
  Case "BENL_Masterfile.xlsm": HolePasswort = "Orange1839"
  Case "IT_HY_Masterfile.xlsm": HolePasswort = "Medici1434"
  Case "NO_Masterfile.xlsm": HolePasswort = "Sverige"
  Case "PL_Masterfile.xlsm": HolePasswort = "Mieszko966"
  Case "FR_Masterfile.xlsm": HolePasswort = "Roi814"
  Case "ES_Masterfile.xlsm": HolePasswort = "Navarra1512"
  Case "DE_Masterfile.xlsm": HolePasswort = "DE1648"
  Case "PT_Masterfile.xlsm": HolePasswort = "Porto858"
  Case "RU_Masterfile.xlsm": HolePasswort = "Russia1682"
  Case "BEL_Masterfile.xlsm": HolePasswort = "BellaRussie"
  Case "UK_Masterfile.xlsm": HolePasswort = "Hastings1066"
  Case "AT_Masterfile.xlsm": HolePasswort = "DE1648"
  Case "SK_Masterfile.xlsm": HolePasswort = "Valaques"
End Select
End Function
Antworten Top
#2
Noch eine Zusatzinfo die vielleicht das Problem besser erkennen laesst.
Ein anderer Kollege (based in Germany) laesst das Makro laufen - erster run ohne problem - smooth as criminal
dann laesst er es kurz danach ein 2tes Mal laufen und dann wird er ploetzlich von Excel nach dem PAsswort fuer eine Laenderdatei gefragt (was nicht sein soll)
Es scheint mir daher - dass das sharedrive irgendwie dem Excel mitteilt dass die Datei offen ist und deshalb fragt Excel nach dem passwort - obwohl die datei eigentlich zu ist? Macht das Sinn?
Wenn ja, wie kann man das umgehen mit den obigen Makro Code?
Antworten Top
#3
Iche denke ich habe Problem 1 (Abfrage ob die Datei unter anderen Namen abgespeichert werden soll weil bereits existiert) geloest
ich habe die zeile
ActiveWorkbook.save geloescht
und ActiveWorkbook.Close True durch ActiveWorkBook.close False ersetzt.

Ich habe immer noch das Problem dass meinen amerikanischen Kollegen jetzt immer eine Abfrage nach dem Passwort bekommen (manuelle Eingabe)

Gibt es dafuer eine Loesung bzw. was kann die Ursache dafuer sein? - ich vermute es haengt mit der Serverreaktionszeit zusammen. Mit welchem Code kann ich das Problem umgehen? Sprich die Datei ist "angeblich offen von einem anderen Nuzter" und trotzdem soll das Makro automatisch das passwort eingeben ohne manuelle eingabe und die Datei oeffnen.
Antworten Top
#4
Hallo Christian,

vielleicht hilft es, die Datei(en) direkt schreibgeschützt zu öffnen (ReadOnly:= True):
Sub Makro4()
 Dim strVerzeichnis As String
 Dim strDatei As String
 Dim StrTyp As String
 strVerzeichnis = "\\corporate treasury\Daily Reporting Receipts & Disbursement\"
 StrTyp = "*.xlsm"
 strDatei = Dir(strVerzeichnis & StrTyp)
 Do While strDatei <> ""
     Workbooks.Open Filename:=strVerzeichnis & strDatei, ReadOnly:=True, Password:=HolePasswort(strDatei)
     ThisWorkbook.ChangeLink Name:=strDatei, NewName:=strDatei, Type:=xlExcelLinks
     ActiveWorkbook.Close False
     strDatei = Dir
 Loop
End Sub
Gruß Uwe
Antworten Top
#5
Du vermischt thisworkbook und activeworkbook:
Verzichte auf beide.

Code:
Do While c01 <> ""
 with Workbooks.Open(strVerzeichnis & strDatei, HolePasswort(strDatei))
    .ChangeLink strDatei, strDatei, xlExcelLinks
    .Close -1
  end with
 c01 = Dir
Loop
Antworten Top
#6
Hi,

(13.12.2016, 10:08)snb schrieb: Du vermischt thisworkbook und activeworkbook:

zur weiteren Erläuterung:
ActiveWorkbook: Arbeitsmappe im Vordergrund
ThisWorkbook: Mappe, die das gestartete Makro enthält

Diese können, müssen aber nicht identisch sein!
Antworten Top
#7
Hallo,

(13.12.2016, 13:03)Rabe schrieb: Hi,


zur weiteren Erläuterung:
ActiveWorkbook: Arbeitsmappe im Vordergrund
ThisWorkbook: Mappe, die das gestartete Makro enthält

Diese können, müssen aber nicht identisch sein!

ja, das ist richtig und auch genau so gewollt.

Gruß Uwe
Antworten Top
#8
Hallo Uwe,

ich habe es umgeschrieben wie von dir vorgeschlagen, die Amis kriegen weiterhin immer die Abfrage nach dem Passwort (manuelle EIngabe).
Ich gebs jetzt auf, muessen die Amis halt zusehen wie sie klarkommen, bei mir laeuft es einwandfrei

Danke
Antworten Top
#9
Ich fürchte die Funktion 'holepasswort' mangelt bei deinen Kollegen.
Dann fragst du deine Kollegen das Ergebnis von:

Code:
c00 = "\\corporate treasury\Daily Reporting Receipts & Disbursement\"
   c01 = Dir(c00 & "*.xlsm")

   Do While c01 <> ""
     c02=HolePasswort(c01)
     msgbox c02
    with Workbooks.Open(c00 & c01, c02)
      .ChangeLink c01, c01, xlExcelLinks
      .Close -1
     end with
    c01 = Dir
   Loop
Antworten Top
#10
Hallo Christian,

(13.12.2016, 14:00)FR-CGI schrieb: Hallo Uwe,

ich habe es umgeschrieben wie von dir vorgeschlagen, die Amis kriegen weiterhin immer die Abfrage nach dem Passwort (manuelle EIngabe).
Ich gebs jetzt auf, muessen die Amis halt zusehen wie sie klarkommen, bei mir laeuft es einwandfrei

Danke

vielleicht haben die Kollegen auch einfach nur andere Dateien mit anderen Passwörtern?   :17:

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste