Bug dans Excel mais je ne comprends pas pk

Voila le fichier finalisé.

Le code scanné est composé de 8 chiffres de la ref en B2 puis d'un num de série de 6 chiffres compris entre D1 et D2.

exemple 1 pour la ref et 2 pour le num de série ca donne 11111111222222 et c'est ca qui sera envoyé dans la textbox 4

Aparement tout fonctionne.

Si tu vois quelque chose qui cloche n'hésite pas mais moi je dit monte le son tu vas rigoler.

J'espère mardi soir pouvoir mettre un

PS oui j'avais bien vu ton post de l'appui sur entrer mais mon scann apres avoir lu le code le valide tout seul. C'est comme si tu tappe a la main et appui sur entree.

Attends nous autres au projet Myrmidon, on est pas des myrmidons pour rien le spartiate.

Effectivement ça marche, même si j'ai l'intuition qu'il manque quelque chose ou aurait pu être amélioré , n'hésite pas à relire les posts et essaye de faire toutes les erreurs que pourraient faire les utilisateurs, ainsi que celles qui paraitraient improbables.

Lien utile au cas où, pour des codes de gestion d'erreurs :

http://lecompagnon.info/vba-excel/vba_erreurs.htm#Sortes

Et mon bouquin de programmation dit :

1/ Faire beau et propre (donne un nom à ton programme ) pour inciter l'utilisateur à se l'approprier.

2/ Organisé et clair, afin que n'importe qui puisse l'utiliser sans trop d'aide.

3/ Chasse aux bugs.

4/ Bien expliquer le code au cas où tu devrais le reprendre dans 6 mois.

Au cas où t'a de la chance et que ton auditeur te demande de chiffrer ton boulot , rajoute mes 8h d'aide+ 2h pour Thautheme + les tiennes et rappel lui que la dev. de la macro ne relève pas du CIR.

HELLOOOOOOOOOOOOO Les Dieux

Comment allez-vous?

Alors après avoir galéré avec le scanner (problèmes) de paramétrage, tout à l'air de fonctionner.

J'utilise le fichier sur un PC de prêt qui rame grave mais sur mon pc professionnel ça fonctionne tip top. J'ai dû faire quelques petites modiff et c'est parti. Jusque la fin de semaine les filles vont travailler en parallèle sur les 2 (feuille + excel) afin de s'assurer du fonctionnement et semaine prochaine je vire cette feuille et n'utiliserai que le fichier excel.

Bisous à vous et

"Coolcoolcool"

8) C'est opérationnel on est trop forts

Bon scannage alors

Hello les loulous.

C'est re-moi

Avec le PC de prêt intel core pas 2 solo, 512 de rammes il arrive que ça me perde le focus du textbox4 mais je ne sais pas si c'est dû au PC ou au programme.

De temps en temps il me valide mon scannage instantanément et de temps en temps il mouline grave avant de me ré-afficher le userform et la hop j'ai pas le focus sur le textbox4 qui est en tabindex à 0 pourtant. En fait c'est même le userform1 qui est pas en sélectionné (il est affiché mais c'est comme si j'étais pas dans le userform).

Je me voit mal demander un pc neuf a mon boss tant que mes essais ne sont pas finalisés (avec les projets on est même entrain de regarder pour 1 tablette et 3 bases comme ça la fille se déplace sur ses 3 postes de travail sans trainer scann et tout et tout). Je poursuit mes différents stresstest afin que je ne rencontre plus aucun bug.

Et autre question à l'ouverture du userform 2 (quand j'ouvre le doc vierge) est il possible que si un fichier à déjà été créé que celui-ci s'ouvre au lieu d'en créer un nouveau? En gros

1) j'ouvre mon fichier vierge pour la première fois je remplie mes 6 cases du textbox 2 et quand je valide il me créer un fichier avec comme nom textbox1-textbox2.xlsm disons dans l'exemple 1234567-8765432.xlsm

2) je ne termine pas mon ordre de fabrication (j'en fait par exemple 100/200) et le quitte

3) j'ouvre un nouveau fichier différent (autre num d'of mais la ref peut être identique)

4) celui-ci je le termine

5) je veut retourner dans mon 1234567-98765432 mais au lieu de le rechercher dans le répertoire je dit que quand je sors du textbox2, SI et SEULEMENT SI je rentre de nouveau 1234567 ET 98765432 au moment de la sortie du textbox2, msgbox OF déjà crée, reprise du document en cours et quand je clic sur ok, il m'ouvre mon 1234567-98765432

Je pense que ça irai dans textbox2 exit du Userform 2 mais je sais pas du tout comment compiler cela j'ai mis des comms pour expliquer

00h30 je vais aller dodo

Merci d'avance à vous

Rectif il est 00h40 maintenant

18test.xlsm (162.03 Ko)

Voila j'ai déja trouvé ca

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Ouverture du fichier si existant
Dim Pat As String, Fichier As String

Pat = "C:\Users\Sébastien\Desktop\"
Fichier = ("" & TextBox1.Value & "-" & TextBox2.Value & ".xlsm")

If Dir(Pat & Fichier) <> "" Then
Unload UserForm2
MsgBox "FICHIER EXISTANT"

Workbooks.Open (Pat & Fichier)
ActiveWorkbook.Close False
'EN PARRALELE IL DOIT ME FERMER LE FICHIER VIERGE ET LA C'EST LE DRAME il me le laisse affiché

End If

End Sub

Le prob c'est qu'il m'ouvre le fichier existant et démmare le userform de scannage mais ne me ferme pas le fichier vierge ouvert.

cafard a écrit :

Hello les loulous.

Avec le PC de prêt intel core pas 2 solo, 512 de rammes il arrive que ça me perde le focus du textbox4 mais je ne sais pas si c'est dû au PC ou au programme.

De temps en temps il me valide mon scannage instantanément et de temps en temps il mouline grave avant de me ré-afficher le userform et la hop j'ai pas le focus sur le textbox4 qui est en tabindex à 0 pourtant. En fait c'est même le userform1 qui est pas en sélectionné (il est affiché mais c'est comme si j'étais pas dans le userform).

Je me voit mal demander un pc neuf a mon boss tant que mes essais ne sont pas finalisés (avec les projets on est même entrain de regarder pour 1 tablette et 3 bases comme ça la fille se déplace sur ses 3 postes de travail sans trainer scann et tout et tout). Je poursuit mes différents stresstest afin que je ne rencontre plus aucun bug.

Hello,

Je vais commencer par le plus simple pour l'instant , ensuite je commencerai par jeter un oeil au reste durant la nuit ou demain matin.


1. Question sur la performance de l'ordi.

> 512 de ram => Résultat Pas de DSI chez toi ?

Si tu es sur XP, éventuellement ça passe, encore qu'en théorie XP est mort et ne devrait plus être utilisé, si ton OS est postérieur à XP, il faut au minimum 4Go de RAM, maintenant si c'est un fixe, achète une barette et rajoute là, sinon pleure .

Il y'a aussi le facteur d'age de l'ordi, s'il est vieux les composants sont usées on ne pourra pas faire grand chose.

Conseils :

> Partie Hardware :

Si ordi fixe (encore que certains le font pour des portables), ouvre enlève la poussière des fenêtres d'aérations et des ventilos.

http://poloastucien.free.fr/nettoyer_depoussierer_son_pc_h.html

> Partie Software :

A/ Jamais eu d'intérêt d'y utiliser, mais beaucoup de personne y utilise, pour optimiser l'ordi :

PC Cleaner / Essaye de faire un scan/défragmentation aussi

B/ Lance le programme windows de nettoyage d'espace disque et vire les fichiers temporaires, internet temporaire,...

C/ Vu que la plupart des boites travaillent sur Explorer même non lancé ça ralentit le système, va dans options supprime l'historique de navigation, puis à côté de "supprimer", tu as un bouton "paramètre" t'y va, tu fais afficher objet, tu sélectionne tu supprime tout, tu fais afficher fichier, tu sélectionne tu supprime tout, déjà ça devrait aller un peu plus vite, du moins dans mes souvenirs.

> Partie Outil de suivi système

A/ Ouvre le gestionnaire des tâches, tu dois avoir un onglet performances, ici tu verra le niveau d'utilisation de l'ordinateur, dans processus tu trouvera les processus actifs monopolisant le plus l'ordinateur, tu peux même trier....

Ca répondra à ta question : "il arrive que ça me perde le focus du textbox4 mais je ne sais pas si c'est dû au PC ou au programme"

A partir de là, tu connaitra les applications qui consomment le plus de puissance, ça te permettra d'éviter d'ouvrir 36 cessions dans 36 programmes différents.

B/ Ensuite c'est trop long à écrire et je l'ai déjà écrit, télécharge mon appli. myrmidon, dedans il y'a un manuel parlant entre autre un peu du multithreading et dans ma macro, appuis sur le bouton "afficher les paramètres manuels", je pense qu'en allant dans le gestionnaire et en modifiant la priorité du processus Excel.exe sur priorité Haute, tu devrais déjà arriver à stabiliser un peu mieux l'appli. du moins ça marche très bien pour mon appli. .Net.


2. Pour la 2e partie de la citation :

N'ayant jamais vu de scan fonctionné avec Excel je ne sais pas trop quoi en penser. , j'ai bien 2/3 présomptions mais comme ça de loin sans pouvoir bidouiller je n'en sais rien, est-ce que le fait que l'ordi est faiblard, fait freezer Excel, qui le fait micro planter et du coup plante le déroulé de code de Thauthème, je n'en sais rien, probable.

> Mais sinon ton fichier marche bien sur un ordi correcte ? Parceque dans ce cas, ce n'est peut être pas très nécessaire de trop perdre de temps sur la question ?

"En fait c'est même le userform1 qui est pas en sélectionné (il est affiché mais c'est comme si j'étais pas dans le userform)"

Ce que tu écrit me fait plus penser à la 13e dimension, qu'a un bug, c'était minuit passée ?

Essaye ton fichier après avoir fait les actions écrite dans mon point 1, si ça se trouve ça va être bon, après perso, comme ça pas d'idée sans avoir le bug chez moi.

Sinon test le deboggeur VBA (voir tread d'Yvouille), afin de trouver le bug est tu nous dis où ça plante, dans quels conditions,...

https://forum.excel-pratique.com/cours-astuces/methodes-point-d-arret-et-pas-a-pas-t59460.html


3. Concernant les investissements

Tu es prudent c'est une excellente chose, pense aussi que ton ordi est plus ou moins amorti sur 3/5 ans, inutile d'investir des sommes folles dans du matos dernier cris, si au-delà de cet horizon vous n'en n'avez pas besoin. Vous aurez amortis sa valeur et vous pourrez toujours en changer.

P@t123 d5 b@1456 Merde, en écrivant ce post tu me fais penser qu'en adaptant ton scanner, j'aurais pu amélioré la productivité de mon ancien job de compta fours avec le rappro BC/Facture Où étais tu durant toutes ces années Tant pis, t'utilise quoi comme marque et modèle de scanner ?


Je regarderai pour le reste, ça n'a pas l'air trop dur, du moins pour l'instant a+

Rectif puisque c'est de tradition, il fait nuit...

Hello

Le pc sera amorti en 1 à 2 mois. En effet 1 fois par semaine je paye une nana pour contrôler les pseudos doublons pendant environ 8 à 10h (8x9€ de l'heure si c'est le smic = 72 x 8 semaines =576€) t'a vu je suis pas si loin d'une petite tablette windows à 800€ style surface pro 3.

Le pc de prêt en fait c'était le dernier car les périodes de stagiaires commencent et c'est le dernier qui restait. PS j'ai appris aujourd'hui que le DD était fatigué. Ils me change le DD lundi ou mardi.

Je n'ai pas pu tester sur un pc "rapide" car je n'ai pas les accès réseau de mon pc pro a moi. On tourne sur windows 7 entreprise sur tout le parc informatique. Le 512 de ram c'était du lol. Il doit y avoir plus mais le ramage ça doit être du a mon DD du coup.

Le scanner c'est un

Ce soir je bosse pas dessus j'ai les yeux en miette. Je verrais demain.

Bonne nuit

Hello,

Ta eu mon MP ? Il est dans ma boite d'envoi mais indiqué envoyé, alors que dans messages envoyés nada

Alors voilà ma solution pour ton problème de save de fichier existant :

cafard a écrit :

Et autre question à l'ouverture du userform 2 (quand j'ouvre le doc vierge) est il possible que si un fichier à déjà été créé que celui-ci s'ouvre au lieu d'en créer un nouveau? En gros

1) j'ouvre mon fichier vierge pour la première fois je remplie mes 6 cases du textbox 2 et quand je valide il me créer un fichier avec comme nom textbox1-textbox2.xlsm disons dans l'exemple 1234567-8765432.xlsm

2) je ne termine pas mon ordre de fabrication (j'en fait par exemple 100/200) et le quitte

3) j'ouvre un nouveau fichier différent (autre num d'of mais la ref peut être identique)

4) celui-ci je le termine

5) je veut retourner dans mon 1234567-98765432 mais au lieu de le rechercher dans le répertoire je dit que quand je sors du textbox2, SI et SEULEMENT SI je rentre de nouveau 1234567 ET 98765432 au moment de la sortie du textbox2, msgbox OF déjà crée, reprise du document en cours et quand je clic sur ok, il m'ouvre mon 1234567-98765432

Je pense que ça irai dans textbox2 exit du Userform 2 mais je sais pas du tout comment compiler cela j'ai mis des comms pour expliquer

00h30 je vais aller dodo

Merci d'avance à vous

Rectif il est 00h40 maintenant

Procédure à toi à supprimer :

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Ouverture du fichier si existant

Ma Sub principale de sauvegarde dans le module 1 :

Sub module1_sauvegarde()
'Déclaration des variables pour process de sauvegarde avec controle fichier existant et actions à faire si oui ou non
'1. Déclaration des variables comme objet spécifique pour création d'une nouvelle fenêtre Excel
Dim xlApp As New Excel.Application
'2. Déclaration des variables comme objet spécifique pour création d'un nouveau fichier Excel
Dim xlBook As New Excel.Workbook
'3. Déclaration des variables en données texte, pour définition chemin et nom fichier
Dim Pat As String, Fichier As String, Cefichier As String

'Définition du contenu des variables
'4. Définition du chemin de l'emplacement des fichiers de scannage de pompes
Pat = "C:\Users\waard\Desktop\testdossier\"
'5. Définition du nom du fichier à partir des données du classeur validées par l'userform2
Fichier = ("" & Range("B1") & "-" & Range("B2") & ".xlsm")
'6. Définition d'une variable cefichier pour ne fermer que le fichier en cours qui fait doublon sans risque d'erreurs du à l'user ou autres
Cefichier = ThisWorkbook.Name

'Formule SI pour reperer si fichier déjà existant dans le chemin dossier
If Dir(Pat & Fichier) <> "" Then

'7.a. >>SI OUI ALORS<< message User que déjà existant
MsgBox "FICHIER EXISTANT"
'7.b. A partir d'Excel créer une nouvelle fenêtre d'application
Set xlApp = New Excel.Application
'7.c. Avant d'ouvrir le fichier à l'origine du doublon, désactiver les événements Excel pour ne pas ouvrir en auto l'userform1 du fichier à ouvrir
xlApp.Workbooks.Application.EnableEvents = False
'7.d. Ouverture à l'origine du doublon pour pouvoir y retrailler
        xlApp.Workbooks.Open (Pat & Fichier)
'7.e. Définir la taille de la fenêtre excel à agrandir pour éviter que le fichier à ouvrir ne soit en taille restaurer ou minimiser
        xlApp.WindowState = xlMaximized
'7.f. La nouvelle instance apparait dans windows, sinon apparement reste dans les processus inactifs de windows et n'apparait que si on ferme et que l'on rouvre excel...
        xlApp.Visible = True
'7.g. Réactivation des évenements Excel pour terminer
xlApp.Workbooks.Application.EnableEvents = True
'7.h >>FIN<< Fermeture du fichier vierge qui fait doublon sans sauvegarde
Workbooks(Cefichier).Close False

'SINON sauvegarde normale du fichier
Else
'7.a. Si non, définition du chemin d'enregistrement du fichier de scan à partir de la variable PAT
ChDir Pat
'7.b. Lancement sauvegarde du fichier en cours, à partir de la variable nom fichier et désactivation des messages d'alerte de sauvegarde à ce niveau
ActiveWorkbook.SaveAs _
Filename:=Fichier, _
ConflictResolution:=xlLocalSessionChanges
      'Options ConflictResolution
      'xlLocalSessionChanges > Les modifications de l'utilisateur local sont toujours acceptées.
      'xlOtherSessionChanges > Les modifications de l'utilisateur local sont toujours rejetées.
      'xlUserResolution > Une boîte de dialogue demande à l'utilisateur de résoudre le conflit.

'FIN FORMULE SI - FIN PROCEDURE DE SAUVEGARDE
End If
End Sub

> Point 4 de la SUB : Pense à changer le chemin de sauvegarde par le tiens, j'ai laissé le mien

> Point 5 de la SUB : Si tu prends comme variable nom les textboxs, une fois sorti de la validation de l'userform, tout revient à 0, comme on est en dehors, j'ai repris en variable les cellules excel qui sont modifiés par les textboxs une fois l'userform2 validé

Ma réécriture de la SUB d'ouverture du fichier :

Private Sub Workbook_Open()

'Si première ouverture du fichier (à la condition que la cellule B1 soit vide), afficher l'userform de demande informations série
If Range("B1") = "" Then
UserForm2.Show
'Quand userform2 rempli, la validation le ferme et lance la procédure de sauvegarde du module 1
module1_sauvegarde
End If

'Quand sauvegardé lancement du scannage
UserForm1.Show
End Sub

Pour moi ça marche si on suit bien tes conditions de dérouler de travail

1. A partir d'un nouveau fichier vierge (Cellule B1 vierge) Ouverture du userform2 pour remplir les numéro OF/Container...

2. Si données Ok (suivant tes controles de données dans l'userform2), validation de l'userform2 et lancement de la sauvegarde

3. Lancement de la sauvegarde

3.1 Si fichier en doublon, alors ouverture du fichier d'origine et fermeture de ce fichier qui fait doublon

3.2 Si fichier ne fait pas doublon, alors sauvegarde normal, poursuite du boulot

4. Ouverture du userform1 pour scan, ... etc etc

Par contre, il a fallut que je dise adieux à l'ouverture auto de l'userform1 dans le fichier à ouvrir, sinon ça plante la macro à partir de la ligne pour l'ouverture du fichier, sinon il, faudrait programmer un interrupteur (pour désactiver/activer l'userform1 suivant ce scenario de doublon), mais ça me prendrait 1 jour de boulot pour le faire proprement et je ne vais pas en avoir le temps

J'ai testé chez moi, ça marche je ne vois pas de bugs, si je n'ai rien oublié à ta problématique, ça devrait être bon, mais dit moi.

37test.xlsm (168.97 Ko)

Hello

Alors sérieusement toi t'es un boss. J'hallucine. Tu arrive a tout programmer. Balaise ton code la!!!

Je potasse un peut le code et je te donne des retours.

Bon week et merciiiiiiiiiiiiiii.

Re :

Bah à vue de nez t'avais comme même fait 70% du boulot, t'étais pas loin.

Hello Wardounet

Toujours en cours de test et analyse.

Mon new pc est en commande chez HP. Le directeur de prod m'a validé ma demande.

Bizoo

Re :

Je suis tombé sur ce thread en venant :

https://forum.excel-pratique.com/excel/mise-a-jour-auto-code-vba-possible-t63083.html

Je sais pas trop où t'en ai dans la mise en prod et la création de nouveaux fichiers de scan, mais comme tu est amené a réutiliser tes classeurs, si t'a besoin de mettre à jour le code VBA, sans passer par un copier/coller dans tous les fichiers, il est possible de le faire en auto, par macro, bon par contre jamais fait, mais apparemment possible.

Et quand tu en sera à la v4 de ton appli. et qu'il faudra l'adapter en fonction de la taille des écrans (histoire que ta tablette de 11 pouces affiche correctement les userforms), je pense qu'il est possible de reconnaitre en auto à l'ouverture, la taille de l'écran de l'user, par ce code Application.Height (exprimé en cm apparemment) et de programmer à l'ouverture des modifs de zoom ou d'affichage d'userform spécifique, ... etc etc suivant ton imagination...

Tiens 2 codes en passant si ça te donne une idée pour combler un besoin ou améliorer la présentation.

Sub change_titre_appli()
'Modifier le titre de l'application dans la barre de titre, touche par contre toute les fenêtres des appli. excel
Application.Caption = "SPARTA au lieu d'EXCEL"
End Sub
Sub mettre_message_barreetat()
'Mettre un message en bas de la fenêtre Excel, dans la barre d'état, touche par contre toute les fenêtres des appli. excel
Application.StatusBar = "Attention gros scannage à faire"
End Sub

Rechercher des sujets similaires à "bug comprends pas"