Erreur d'execution 13
Bonjour,
Tout d'abord je tiens à souligner que je suis novice ++ en excel VBA.
J'ai récupérer un fichier GMAO sur le forum, très complet et digne d'un super travail (fichier ci-joint)
En revanche je bloque vraiment sur une "erreur d'exécution 13 incompatibilité de type" lorsque je clique sur ajouter une intervention préventive.
Je suis tombé sur quelqu'un qui avait le même problème sur le même fichier : https://forum.excel-pratique.com/excel/erreur-d-execution-13-194054#p1206816
J'ai beau essayer de chercher et de comprendre, mais mes compétences en VBA sont très limitées voir nulle. Pouvez-vous m'aider ?
Merci d'avance
MDP admin : bol
MDP pour VBA : 13081988PINOTMIKHAIL
Bonjour,
Si je comprends bien la réponse de JExceL2fr sur le post en question.
1. Arretez l'exécution du code en cours.
2. Ouvrez le code de l'userform indiqué en jaune dans votre screenshot (UsfPreventif). Pour cela clic droit dessus > visualiser code
Rendez vous au module Private Sub UserForm_Initialize()
Pour cela CTRL+F ou descendez à la ligne 472.
3. Dessous, vous devriez trouver le code du screenshot ci-après
4. Remplacez la partie surlignée en bleue sur mon screenshot (ATTENTION LAISSEZ LA DERNIERE LIGNE End If comme indiqué) ie. lignes 510 à 520 par le code proposé par JExceL2fr dans le post de votre lien.
5. Fermez, sauvegardez et réeessayez.
Désolé alors, je ne sais pas. Il faudrait attendre qu'il/un auteur du projet y jette un oeil. C'est trop complexe pour une aide rapide d'une personne extérieure comme moi.
Bonjour à tous,
L' "Erreur d'exécution 13", dans ce cas précis, est générée par la valeur de "B7" ("Liste intervenant") de la feuille "GestionLISTE".
Le code de "Private Sub UserForm_Initialize()" du formulaire "UsfPreventif" teste si la valeur de "B7" est 1 ou 2, sinon "List1" reste vide, générant l'erreur à la ligne "UsfPreventif.TxtIntervenant.List = Application.Transpose(list1.items)' en fin de code.
If Feuil4.Cells(7, 2).Value = 1 Or Feuil4.Cells(7, 2).Value = 2 Then
UsfPreventif.TxtIntervenant.List = Application.Transpose(list1.items)
Bizz
Bonjour à tous,
Si B7 différent de 1 ou 2, la liste reste vide.
Si B7 = 3, la "List1" est remplie avec les données de la colonne "E" de la feuille "Suivi Intervention". Présentement cette feuille n'a pas de données.
Dès que le nom d'un intervenant sera inscrit en "E5" de la feuille "Suivi Intervention"
Il faut donc ajouter une première intervention, puis ça roule doux.
Bizz
Bonjour à tous,
Une suggestion : changer cette procédure dans la feuille "MENU PRINCIPAL".
Private Sub CommandButton4_Click()
Module1.LgPP = 0
On Error GoTo ErrorHandler
UsfPreventif.Show
Exit Sub
ErrorHandler:
MsgBox "Erreur : Y a-t-il une première intervention d'inscrite ?"
Application.ScreenUpdating = True
End SubBizz
Merci beaucoup à vous tous , c'est ok je peut crée une intervention.
En fait je peux en crée une seule, le fichier n'incrémente pas les suivantes dans mon tableau. Existe-il une ligne de code afin d'ajouter des lignes sur mon tableau au fur et à mesure ?
Merci beaucoup Bizarre tu as assurer, je commence à aimer le VBA c'est très intéressant !
PS : Je suis alternant licence pro Maintenance
Bonjour à tous,
J'ai téléchargé ton fichier à nouveau.
À l'ouverture, section : "Intervention", bouton : Listing.
Le formulaire s'ouvre, bouton : "Ajouter Intervention".
Je peux ajouter plusieurs interventions consécutives.
Bizz
Salut Bizz,
Pour la section "intervention" oui pas de soucis, c'est sur la section "préventif" où mon problème apparaît.
Merci ;)
Bonjour,
Dès qu'il y a une intervention enregistrée (Intervention / Listing), je n'ai pas d'erreur nul part. Dû moins, partout où j'ai testé (Intervention/Préventif/Fournisseur).
Bizz
Bonjour lgssb,
Je n'ai pas ce souci ou je n'ai pas trouvé comment le reproduire.
J'ai commencé à faire le tour et remarqué quelques drôleries.
Dans les formulaires, j'aime bien changer de champ via la touche "Tabulation". Il y aurait à vérifier si c'est l'ordre désiré.
Date dernière réalisation : on peut utiliser une date plus grande qu'aujourd'hui. "Retour vers le futur" (le film).
Les boutons de la feuille "MENU PRINCIPAL" se décalent vers la gauche lors du clic.
Entre autres, "Pièces/Ajout" se décale du 3/4 de sa largeur.
Bizz
Salut,
Oui ! C'est sur que ce n'est pas ultra performant, j'aurais préférer autre chose… ordre de la direction... Mais pour un fichier gratuit et pour une application dans une moyenne structure ça fait l'affaire !
C'est mon "projet" de cette année LOL...
Bonjour lgssb,
J'ai trouvé pour les boutons baladeurs sur la feuille "MENU PRINCIPAL".
Menu "Développeur", clic "Mode Création",
Clic droit sur un bouton baladeur, dans le menu contextuel, "Objet CommandButton", "Edit". Promène le curseur sur les bords du bouton jusqu'à ce qu'il devienne une croix-quatre-flèches de déplacement.
Positionne correctement le bouton. Clic droit sur un autre bouton, le positionner, clic droit sur un autre bouton, etc.
Quand tous les boutons désirés sont repositionnés, clique au côté pour mettre fin au mode édition.
Au menu, clic "Mode Création" pour le désactiver.
Voilà une petite coquille corrigée.
Bizz
Bonjour lgssb,
UsfPreventif, textbox "TxtDerDateRealisation", pour limiter la date afin qu'elle soit antérieure à aujourd'hui :
Remplacer :
Private Sub TxtDerDateRealisation_Change()
Dim dateValue As Date
Dim isValidDate As Boolean
' Check if the input is a valid date or empty
If TxtDerDateRealisation.Value = "" Then
' If the input is empty, reset the background color and exit
UsfPreventif.TxtDerDateRealisation.BackColor = &HFFFFFF
Exit Sub
ElseIf Not IsDate(TxtDerDateRealisation.Value) Then
' If the input is not a valid date, change the background color to red
UsfPreventif.TxtDerDateRealisation.BackColor = &HFF&
Exit Sub
End If
' Convert the input to a date and validate it
dateValue = CDate(TxtDerDateRealisation.Value)
If dateValue > Date Then
' If the date is in the future, show a message and reset the input
MsgBox "La date doit être antérieure à aujourd'hui."
Application.EnableEvents = False
Me.TxtDerDateRealisation.Text = ""
Me.TxtDerDateRealisation.SetFocus
Application.EnableEvents = True
Exit Sub
End If
' If the date is valid and not in the future, reset the background color to white
UsfPreventif.TxtDerDateRealisation.BackColor = &HFFFFFF
End SubBizz
Salut,
Merci beaucoup Bizz t'assure




