Fichier partagé sur réseau - Invalid forward reference
Bonjour à tous,
Je suis amateur VBA, et j’ai créé un fichier Excel qui sert à enregistrer un niveau de satisfaction.
Petit à petit, de plus en plus d’utilisateurs obtiennent le message d’erreur suivant :
« Run- time error ‘-2147319767 (80028029)’ :
Automation error
Invalid forward reference, or reference to uncompiled type.”
J’ai parcouru le web en cherchant des éléments sur cette erreur sans trouver de réponse (à noter que je ne comprenais pas toujours ce qui se disait, notamment en anglais).
Ci-dessous les détails sur le fichier.
1) Premier point important, le fichier est sur un share point son adresse est de type https.//adresseadresse/adresse/monfichier.xlsm
2) Le fichier est accessible à plusieurs utilisateurs.
3) Un clic sur le lien du fichier ouvre le fichier dans internet explorer, un message comme quoi des « features » ne peuvent pas apparaître dans le navigateur apparaît, un clic sur « edit workbook » in Excel ouvre le fichier dans excel. Le message en haut de fenêtre incite à cliquer sur « Edit Workbook » car le fichier est ouvert en lecture seule.
Fonctionnement :
L’utilisateur a le choix entre 6 émoticônes différentes.
Cliquer sur un émoticône entraine l’ouverture d’un userform.
Le userform comprend une zone de texte qui permet à l’utilisateur de commenter son choix.
Le clic sur le bouton « OK » de l’userform entraine l’enregistrement des données dans une des feuilles du classeur, la sauvegarde et la fermeture du fichier.
Le code est dans un module (module1)
6 emoticones = 6 subs et 6 userforms, tous quasiment identiques, et ce que je trouve surprenant est que le plantage ne survient :
- que sur un ou plusieurs des emoticones choisis, mais pas tous
- pas pour le même émoticone selon l’utilisateur
- pas pour tous les utilisateurs
- et il survient soudainement pour un utilisateur à la fois alors que tout fonctionnait bien à l’origine.
Détail d’une des 6 procédures sub :
Sub VOTE3()
Call UnloadAll
Sheets("Values").Visible = True
Sheets("Values").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Dim a As Variant
a = Selection.Count
a = Int(a)
Cells(a + 1, 1).Value = Format(Now, "dd-mmm-yyyy - hh:mm")
Cells(a + 1, 2).Value = 3
Cells(a + 1, 3).Value = DatePart("ww", Now() - 1, 2)
Sheets("Values").Visible = False
UserForm1.Show
ActiveWorkbook.Close True
End Sub
Détail d’un des userforms :
Private Sub CommandButton1_Click()
Dim LASTLINE As Long
Sheets("Values").Visible = True
Sheets("Values").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
LASTLINE = Selection.Count
Dim COMMENT As String
If TextBox1.Value = "" Then
Sheets("Values").Cells(LASTLINE, 4).Value = "No comment left"
Else
Sheets("Values").Cells(LASTLINE, 4).Value = TextBox1.Value
End If
Sheets("Values").Visible = False
UserForm1.Hide
End Sub
Private Sub Label1_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Click()
End Sub
Quelqu’un saurait-il me dire quel est le souci et comment le régler ?
Merci d’avance pour votre aide !
Père Seval.
Bonjour,
Pour commencer, regarde du côté de :
UserForm1.Show
ActiveWorkbook.Close TrueSi Userform1 que tu affiches est dans le classeur actif que tu enregistres et fermes, il y a peut-être un souci majeur.
Cdlt.
Bonjour,
Pour commencer, regarde du côté de :
UserForm1.Show ActiveWorkbook.Close TrueSi Userform1 que tu affiches est dans le classeur actif que tu enregistres et fermes, il y a peut-être un souci majeur.
Cdlt.
Hello Jean-Eric,
En fait, c'est justement sur la ligne de l'userform.show que s'arrête la macro.
Et je ne vois pas pourquoi elle refuse d'afficher l'userform...
Par contre, pour les deux lignes de code dont tu parles, je me demande si devrais bouger la fermeture du fichier dans le code de l'userform.
Grosso modo, la procédure et la même pour les 6 choix proposés à l'utilisateur.
Clic sur une icone --> lance sub(module) --> montre l'userform --> clic sur OK de l'Userform --> fin de procédure --> unload et hide userform.
Aujourd'hui la fermeture du fichier est dans le module qi appelle l'userform, alors que je devrais peut âtre demander la fermeture du fichier au moment de la fermeture de l'userform.
Voilà le fichier en question si ça peut aider.
Merci encore !
Pére Seval
Hello !
Quelqu'un sait-il si la modification que j'ai proposée est efficace ?
Merci d'avance
Père Seval