Message d'erreur aléatoire excel 2016 en réseau avec utilisateurs ayant windows7
Résolu/Fermé
melidan06
Messages postés
17
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
27 janvier 2020
-
13 janv. 2020 à 22:40
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 janv. 2020 à 15:59
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 janv. 2020 à 15:59
A voir également:
- Message d'erreur aléatoire excel 2016 en réseau avec utilisateurs ayant windows7
- Message - Guide
- Erreur 0x80070643 - Accueil - Windows
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
7 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
14 janv. 2020 à 08:44
14 janv. 2020 à 08:44
Bonjour,
juste une idée en passant :
Ajouter une petite tempo après le .Close que la fermeture soit complète et que le ActiveWorkbook qui suit ne disparaisse pas en cours de route.
eric
Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close LeBug = "Fin des etapes-2" If ActiveWorkbook.Name <> ThisWorkbook.Sheets("list").Range("D22").Value Then
juste une idée en passant :
Ajouter une petite tempo après le .Close que la fermeture soit complète et que le ActiveWorkbook qui suit ne disparaisse pas en cours de route.
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
14 janv. 2020 à 16:16
14 janv. 2020 à 16:16
C'est l'abréviation de temporisation: l'occuper à ne rien faire le temps que la fermeture du ficher se termine.
Par exemple insérer :
Pour mettre en forme le code le sélectionner, sur l'icone de mise en forme '<>' en haut choisir basic dans la liste déroulante.
eric
Par exemple insérer :
For i = 1 To 10000 DoEvents Next i
Pour mettre en forme le code le sélectionner, sur l'icone de mise en forme '<>' en haut choisir basic dans la liste déroulante.
eric
melidan06
Messages postés
17
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
27 janvier 2020
14 janv. 2020 à 16:38
14 janv. 2020 à 16:38
ok donc, disons que j,ajoute un tempo apres avoir demandé au fichier ouvert de se fermer:
...
Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close
Application.Wait Now + TimeValue("0:00:02")
...
c'est ça qui fait que mon outil ne disparaîtra pas dans le fond?
...
Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close
Application.Wait Now + TimeValue("0:00:02")
...
c'est ça qui fait que mon outil ne disparaîtra pas dans le fond?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié le 14 janv. 2020 à 18:10
Modifié le 14 janv. 2020 à 18:10
Ah ça je n'en sais rien de si c'était la cause exacte de tes erreurs.
C'est une possibilité à tester.
Ajoute quand même un
C'est pour ça que je t'avais proposé une boucle plutôt qu'un .Wait
eric
Edit : si tu as la solution sur un autre forum n'oublie pas de la reporter ici pour les futurs lecteurs...
C'est une possibilité à tester.
Ajoute quand même un
DoEventspour donner la main aux tâches en arrière plan.
C'est pour ça que je t'avais proposé une boucle plutôt qu'un .Wait
eric
Edit : si tu as la solution sur un autre forum n'oublie pas de la reporter ici pour les futurs lecteurs...
melidan06
Messages postés
17
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
27 janvier 2020
24 janv. 2020 à 20:22
24 janv. 2020 à 20:22
Bonjour Éric,
après une semaine de test avec la modification du code
ayant ajouté le code DoEvents comme tu me conseillais, après que j'ai demandé au système de fermer le fichier excel, j'avais encore des erreurs mais beaucoup moins.
J'ai aussi ajouté le DoEvents à l'ouverture de mon autre fichier excel.
Mon Userform ouvrait à partir d'un module appelé par un bouton sur une feuille excel.
J'ai donc modifié l'ordre de la série de VBAs à exécuter depuis le UserForm que j'utilisais (retiré les "Call" dans le UserForm et les ai transféré dans un module à la place, juste apres que mon Userform soit fermé.
Du coup, avec les 3 solutions ensembles, j'ai réussi à retirer plus de 85% des erreurs qui arrivaient aléatoirement.
Donc au lieu de recevoir plus de 25 erreurs de mes confrères par jour, je suis passé de 0 à 3x par jour!!!
C'est merveilleux! MERCI DE TON AIDE PRECIEUSE ERIC!!!!!!!
Voici comment j'ai ajouté ton truc DoEvents:
'**********************
' FIN DES ETAPES
'**********************
LeBug = "Fin des etapes-1"
Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close
For i = 1 to 1000
DoEvents
Next i
LeBug = "Fin des etapes-2"
If ActiveWorkbook.Name <> ThisWorkbook.Sheets("list").Range("D22").Value Then
LeBug = "Fin des etapes-2-1"
ThisWorkbook.Activate
End If
LeBug = "Fin des etapes-3"
après une semaine de test avec la modification du code
ayant ajouté le code DoEvents comme tu me conseillais, après que j'ai demandé au système de fermer le fichier excel, j'avais encore des erreurs mais beaucoup moins.
J'ai aussi ajouté le DoEvents à l'ouverture de mon autre fichier excel.
Mon Userform ouvrait à partir d'un module appelé par un bouton sur une feuille excel.
J'ai donc modifié l'ordre de la série de VBAs à exécuter depuis le UserForm que j'utilisais (retiré les "Call" dans le UserForm et les ai transféré dans un module à la place, juste apres que mon Userform soit fermé.
Du coup, avec les 3 solutions ensembles, j'ai réussi à retirer plus de 85% des erreurs qui arrivaient aléatoirement.
Donc au lieu de recevoir plus de 25 erreurs de mes confrères par jour, je suis passé de 0 à 3x par jour!!!
C'est merveilleux! MERCI DE TON AIDE PRECIEUSE ERIC!!!!!!!
Voici comment j'ai ajouté ton truc DoEvents:
'**********************
' FIN DES ETAPES
'**********************
LeBug = "Fin des etapes-1"
Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close
For i = 1 to 1000
DoEvents
Next i
LeBug = "Fin des etapes-2"
If ActiveWorkbook.Name <> ThisWorkbook.Sheets("list").Range("D22").Value Then
LeBug = "Fin des etapes-2-1"
ThisWorkbook.Activate
End If
LeBug = "Fin des etapes-3"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
24 janv. 2020 à 23:31
24 janv. 2020 à 23:31
Bonjour,
tu as tenté une grosse valeur pour la boucle ?
Du style For i = 1 To 30000
eric
tu as tenté une grosse valeur pour la boucle ?
Du style For i = 1 To 30000
eric
melidan06
Messages postés
17
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
27 janvier 2020
27 janv. 2020 à 14:48
27 janv. 2020 à 14:48
Bonjour Eriiic,
J'y suis allé avec 1000 seulement car j'avais peur que la démarche devienne trop longue et que la personne s'impatiente, re-clique sur le bouton pendant qu'il est en train de faire sa boucle (ce qui semble pouvoir causer des erreurs d'après ce que j'ai lu sur internet)
Peut-être que je pourrais augmenter à 3000? Il ne manque vraiment pas grand chose.
J'y suis allé avec 1000 seulement car j'avais peur que la démarche devienne trop longue et que la personne s'impatiente, re-clique sur le bouton pendant qu'il est en train de faire sa boucle (ce qui semble pouvoir causer des erreurs d'après ce que j'ai lu sur internet)
Peut-être que je pourrais augmenter à 3000? Il ne manque vraiment pas grand chose.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
27 janv. 2020 à 15:59
27 janv. 2020 à 15:59
Bonjour,
tu peux tester sur 2-3 jours en informant les utilisateurs.
eric
tu peux tester sur 2-3 jours en informant les utilisateurs.
eric
14 janv. 2020 à 15:58
Merci de ta réponse. Effectivement, rarement mais quand meme, il arrive que des gens me disent que leur outil disparraîssent pendant le traitement de la macro . Alors ils ouvrent leur outil à nouveau et se retrouvent en lecture seule...
Qu'est-ce que "Tempo"? Je m'excuse de ma question, je suis pure québécoise et je n'ai jamais entendu ce terme... :(
Veux tu dire par "Tempo" d'ajouter le "savechanges"?
ex: Workbooks(ThisWorkbook.Sheets("list").Range("D21").Value).Close Savechanges = False?
Comment as-tu fais pour ajouter les chiffres 1 2 et 3 lorsque tu as inscrit le code dans ta réponse?
Et pour les autres problèmes, as-tu une idée?
merci à l'avance
Melissa