Bonjour,
J'ai créé un document Excel que différents utilisateurs de mon entreprise complètent et dont j'extrais une partie des données dans le cadre d'un workflow de validation. En pratique, je reçois leur fichier dans ma boîte mail, je l'ouvre, le contrôle et s'il est OK je clique sur un bouton qui lance la macro suivante (où "XXXXXXXXX" est mon nom d'utilisateur dans l'AD de la société, cette macro ne devant être exécutée que par moi) :
Cette macro fonctionne parfaitement pour tous les fichiers reçus de mes différents utilisateurs, sauf pour un d'entre eux. Ils sont tous équipés d'Excel 2010 ou 2013, je suis moi-même en 2013.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Sub Validation_Direction() ' ' Validation_Direction Macro Dim Utilisateur As String Utilisateur = Environ("username") If Utilisateur = "XXXXXXXXX" Then nomfichier = ActiveSheet.Cells(6, 57).Value Chemin = ActiveSheet.Cells(5, 57).Value Z = Chemin & nomfichier & ".xlsm" ActiveWorkbook.SaveAs Filename:=Z, FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _ Filename:=Chemin & nomfichier, _ Quality:=x1QualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False Sheets("Paye").Select Range("A2:BF2").Select Selection.Copy ActiveWindow.ActivateNext Application.Goto Reference:="R15C1" Selection.End(xlDown).Select Selection.End(xlDown).Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Range("Données_fdm[[#Headers],[IC]]").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ThisWorkbook.Close SaveChanges:=False Else MsgBox "Vous n'êtes pas autorisé à utiliser ce bouton", vbCritical, "Erreur" End If End Sub
Lorsque j'essaye de lancer la macro pour un fichier de l'utilisateur qui me pause problème j'ai le message suivant :
"Erreur d'exécution '32809'
Erreur définie par l'application ou par l'objet"
Si je lance le debugger, la macro s'arrête à l'instruction suivante :
nomfichier = ActiveSheet.Cells(6, 57).Value
Dernière précision, si le même fichier qui plante m'est envoyé par un autre utilisateur, il fonctionne.
Merci d'avance pour votre aide !
Partager