"On error" sans effet sur erreur 1004
Résolu
Biorx8
-
Biorx8 -
Biorx8 -
Bonjour,
je suis en train de faire un VBA des données en provenance d'un autre fichier XLS sont reprises.
seul élément inhabituel, l'autre fichier est verrouillé à l'ouverture et un code m'est demandé pendant le déroulement du script.
dans le cas d'un mauvais mot de passe, excel me remonte une erreur 1004 (Erreur d'exécution 1004 La méthode "Open" de l'objet "Workbooks" a échoué)
j'ai ajouté une borne "on error" mais je me retrouve toujours avec cette erreur
.
.
détail du code
.
.
.
.
.
si l'un d'entre vous pouvait me donner des infos, ça m'aiderait beaucoup.
Merci à tous
je suis en train de faire un VBA des données en provenance d'un autre fichier XLS sont reprises.
seul élément inhabituel, l'autre fichier est verrouillé à l'ouverture et un code m'est demandé pendant le déroulement du script.
dans le cas d'un mauvais mot de passe, excel me remonte une erreur 1004 (Erreur d'exécution 1004 La méthode "Open" de l'objet "Workbooks" a échoué)
j'ai ajouté une borne "on error" mais je me retrouve toujours avec cette erreur
.
.
détail du code
.
.
Function reprisemdp()
While True
Do
On Error GoTo Err_creamdp
Sheets("Mdp").Delete
Loop
Wend
'en cas de suppression d'un onglet une fenêtre apparait pour
'demander la confirmation de l'action
'la "loop" si dessus à été ajouté pour rendre obligatoire la suppression de l'onglet
Err_creamdp:
On Error GoTo wrongpsw
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Mdp"
Workbooks.Open Filename:="D:\Utilisateurs\xnsf819\Desktop\testmdp.xlsx"
'le problème se pose ici, la ligne au dessus sert à ouvrir le fichier source
'et le mot de passe du fichier est demandé
'en cas d'erreur sur le mot de passe excel me sort une erreur 1004 au lieu de suivre
'le scénario "on error"
Windows("utilitaire admin SAP LP alpha.xls").Activate
ActiveSheet.Range("A1").FormulaR1C1 = "=[testmdp.xlsx]Windows!RC"
Range("A1").AutoFill Destination:=Range("A1:B1"), Type:=xlFillDefault
Range("A1:B1").AutoFill Destination:=Range("A1:B31")
Windows("testmdp.xlsx").Close
GoTo finmdp
wrongpsw:
retmdp = msgbox("Password non valide", vbRetryCancel, "erreur mot de passe")
If retmdp = vbRetry Then
GoTo Err_creamdp
Else
GoTo finmdp
End If
finmdp:
End Function
.
.
.
si l'un d'entre vous pouvait me donner des infos, ça m'aiderait beaucoup.
Merci à tous
A voir également:
- "On error" sans effet sur erreur 1004
- Effet miroir word - Guide
- Network error ✓ - Forum Réseaux sociaux
- Erreur eespt technical error - Forum Box et Streaming vidéo
- Effet miroir photo ✓ - Forum Bureautique
- Iptv erreur de lecture - Forum TV & Vidéo
1 réponse
solution trouvée en utilisant une autre méthode.... voila le code pour info
merci à tous
merci à tous
Function reprisemdp()
While True
Do
On Error GoTo Err_creamdp
Sheets("Mdp").Delete
Loop
Wend
Err_creamdp:
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Mdp"
reprisemdp2
End Function
Function reprisemdp2()
On Error Resume Next
restartmdp:
Workbooks.Open Filename:="D:\Utilisateurs\xnsf819\Desktop\testmdp.xlsx"
If Err.Number = 0 Then
Windows("utilitaire admin SAP LP alpha.xls").Activate
ActiveSheet.Range("A1").FormulaR1C1 = "=[testmdp.xlsx]Windows!RC"
Range("A1").AutoFill Destination:=Range("A1:B1"), Type:=xlFillDefault
Range("A1:B1").AutoFill Destination:=Range("A1:B31")
Windows("testmdp.xlsx").Close
GoTo finmdp
Else
retmdp = msgbox("Password non valide", vbRetryCancel, "erreur mot de passe")
If retmdp = vbRetry Then
GoTo retry
Else
GoTo finmdp
End If
End If
retry:
Err.Clear
GoTo restartmdp
finmdp:
End Function