Quelle est mon erreur...
Ajt67
Messages postés
10
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Voilà, j'ai un code écrit comme suit :
Le soucis que j'ai c'est que cela fonctionne sur un ordinateur et lorsque j'installe le fichier sur un autre ordinateur, cela ne fonctionne pas. J'ai une boite de dialogue qui s'affiche :
"Erreur de compilation dans le module caché : ThisWoorkbook"
Quand on clic "OK" une nouvelle boite souvre et on a :
"Erreur d'exécution '1004':
La méthode 'OnTime' de l'objet '_Application' a échoué.
J'ai bien compris en cherchant à déboguer que c'est la ligne :
"Application.OnTime SaisieTimerSaveAuto, "Sauvegarde-Auto", , False"
qui pose problème. Je n'ai pas écrit ce code et je n'arrive pas à trouver la solution...
Merci pour votre aide.
Private Sub Woorkbook_BeforeClose(Cancel As Boolean)
Application.OnTime SaisieTimerSaveAuto, "Sauvegarde-Auto", , False
If Me.Saved = False Then Me.Save
If Me Saved = False Then Cancel = True
End Sub
Le soucis que j'ai c'est que cela fonctionne sur un ordinateur et lorsque j'installe le fichier sur un autre ordinateur, cela ne fonctionne pas. J'ai une boite de dialogue qui s'affiche :
"Erreur de compilation dans le module caché : ThisWoorkbook"
Quand on clic "OK" une nouvelle boite souvre et on a :
"Erreur d'exécution '1004':
La méthode 'OnTime' de l'objet '_Application' a échoué.
J'ai bien compris en cherchant à déboguer que c'est la ligne :
"Application.OnTime SaisieTimerSaveAuto, "Sauvegarde-Auto", , False"
qui pose problème. Je n'ai pas écrit ce code et je n'arrive pas à trouver la solution...
Merci pour votre aide.
A voir également:
- Quelle est mon erreur...
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
- Iptv erreur de lecture - Forum TV & Vidéo
- Instagram une erreur s'est produite - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
2 réponses
Bonjour,
Je suis très surpris que « cela fonctionne sur un ordinateur » !!!
Pourrais-tu nous indiquer sur quel type d'ordinateur, avec quel OS et quelle version d'Excel ???
A ma connaissance le VBA n'accepte pas de nom de variable contenant un tiret !!!!
Cordialement
Patrice
Je suis très surpris que « cela fonctionne sur un ordinateur » !!!
Pourrais-tu nous indiquer sur quel type d'ordinateur, avec quel OS et quelle version d'Excel ???
A ma connaissance le VBA n'accepte pas de nom de variable contenant un tiret !!!!
Cordialement
Patrice
Bonjour,
Si c'est là, la totalité du code, c'est normal que ça ne fonctionne pas.
Le premier conseil que je donnes aux débutants VBA c'est de commencer tous leurs modules (standard, de feuille ou de classe) par Option Explicit.
Tu devrais essayer, ça te permettra de comprendre ton erreur.
Cordialement
Patrice
Si c'est là, la totalité du code, c'est normal que ça ne fonctionne pas.
Le premier conseil que je donnes aux débutants VBA c'est de commencer tous leurs modules (standard, de feuille ou de classe) par Option Explicit.
Tu devrais essayer, ça te permettra de comprendre ton erreur.
Cordialement
Patrice
A ma connaissance le VBA n'accepte pas de nom de variable contenant un tiret !!!!
c'est-à-dire : Sauvegarde-Auto
c'est effectivement faux il fallait lire, ou plutôt écrire :
Application.OnTime SaisieTimerSaveAuto, "Sauvegarde_Auto", , False
Mais le code était écrit juste dans le programme, c'est dans ma demande que c'était mal rédigé. Donc le problème persiste et cet après-midi, je me suis mis à un autre poste............. ça fonctionne. Je reprend la clé USB, je retourne au poste précédent, ça fonctionne pas. Est-ce lié à la version d'Excel ??? Est-ce une différence d'installation d'Excel.
Private Sub Workbook_Open()
If (Val(Application.Version) < 12 Or Val(Application.Version) >= 14) Then
Rep = MsgBox("Ce cahier n'est compatible qu'avec Excel 2007 et 2013", vbCritical + vbOKOnly, "Cahier de saisie des bateaux")
ThisWorkbook.Close
Else
UserForm9.Show
Sauvegarde_Auto
End If
End Sub
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "Il est déconseillé de COPIER/COLLER ou COUPER/COLLER dans cette application!!!", vbCritical + vbOKOnly
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime SaisieTimerSaveAuto, "Sauvegarde_Auto", , False
If Me.Saved = False Then Me.Save
If Me.Saved = False Then Cancel = True
End Sub
Ensuite, dans un module j'ai une macro :
Sub Sauvegarde_Auto()
' Rep = MsgBox("On est à " & FormatDateTime(SaisieTimerSaveAuto, vbGeneralDate), vbOKOnly)
ThisWorkbook.Save
SaisieTimerSaveAuto = DateAdd("n", 10, Now)
' Rep = MsgBox("Prochaine sauvegarde à " & FormatDateTime(SaisieTimerSaveAuto, vbGeneralDate), vbOKOnly)
Application.OnTime SaisieTimerSaveAuto, "Sauvegarde_Auto", , True
End Sub
Voilà le code complet.