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

capture d ecran 2024 07 10 223637 capture d ecran 2024 07 10 223558
33gmao.zip (728.88 Ko)

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

image

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.

Bonjour,

Déjà merci beaucoup pour votre réponse, oui en effet j'avais aussi compris comme cela. Mais le problème c'est que mon erreur persiste :(

Le code est copié collé à l'identique, mais j'ai toujours cette erreur.

capture

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 Sub

Bizz

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

capture prev

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,

Je te met ci-joint les screens dans l'ordre, j'ai uniquement ma dernière intervention préventive qui est modifiée or normalement elle doit s'ajouter au tableau.

Merci à toi ;)

1 2 4 3

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 Sub

Bizz

Salut,

Merci beaucoup Bizz t'assure

Rechercher des sujets similaires à "erreur execution"