Workbooks.Open Filename:="""" & Chemin_serveur & monClasseur & """", _ Password:=motdepasse
Workbooks(monClasseur).Activate
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim oClasseur As WorkBook Set oClasseur = Workbooks(monClasseur) If oClasseur Is Nothing Then ' Ouverture ' (tu noteras l'utilisation de parenthèses dans ce cas) Set oClasseur = Workbooks.Open (Filename:= ...) End Ifet ensuite, travailler avec l'objet oClasseur et pas le ActiveWorkbook qui peut toujours être un problème au cas où l'utilisateur joue de la souris pendant l'exécution de la macro.
If Err.Number <> 0 Then Err.Clear rep= False Application.StatusBar = "Ouverture de la base Hibiscus choisie" Workbooks.Open Filename:=Chemin_serveur & monClasseur, Password:=motdepasse
On Error GoTo 0 On Error Resume Next 'Workbooks(monClasseur).Activate 'cette ligne de code est en commentaire Application.DisplayAlerts = False If Err.Number = 0 Then MsgBox "On est dans le IF " Err.Clear rep= False Application.StatusBar = "Ouverture de la base Hibiscus choisie" Workbooks.Open Filename:=Chemin_serveur & monClasseur, Password:=motdepasse Application.DisplayAlerts = True MsgBox "le classeur est ouvert" On Error Resume Next If Err.Number <> 0 Then msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _ & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez" Style = vbOKOnly + vbCritical + vbDefaultButton1 Title = " Message d'erreur" reponse = MsgBox(msg, Style, Title) Application.StatusBar = False End If Else flag_base_en_ligne = True
Dim monclasseur As String, déja As Boolean, el As Workbook monclasseur = "saisie4.xlsm" For Each el In Workbooks If el.Name monclasseur Then deja True Next If deja Then MsgBox "déjà ouvert" Else MsgBox "pas ouvert" ' tes instructions d'ouverture ici End If
On Error Resume Next Workbooks("monClasseur.xls").Activate If Err.Number <> 0 Then Err.Clear flag_base_en_ligne = False Application.StatusBar = "Ouverture de la base Hibiscus choisie" Workbooks.Open Filename:="Chemin" & "" & "monClasseur.xls", Password:=motdepasse 'Message test MsgBox "Ceci est un message test pour indiquer que le classeur est ouvert " If Err.Number <> 0 Then msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _ & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez" Style = vbOKOnly + vbCritical + vbDefaultButton1 Title = " Message d'erreur" reponse = MsgBox(msg, Style, Title) Application.StatusBar = False End End If Else flag_base_en_ligne = True End If End Sub
Workbooks.Open Filename:="Chemin" & "" & "monClasseur.xls", Password:=motdepasse
Mais je t'avouerai la ou je seche pourquoi sous 2003,sans rien changer à la portée des variables la macro tourne bien et sous 2010 cela plante.??