Bugg avec listes déroulantes dans tableau structuré (Utilisées dans USF)

Bonjour la communauté EXCEL !

Je vous appelle au secours pour solutionner un Bugg que je ne parviens pas à solutionner malgré mes multiples recherches.

Mon Fichier : 1 Formulaire de saisie qui alimente une BDD / Des listes déroulantes stockés dans des tableaux structurées pour quelles soient évolutives

Mon Bugg :

=> Lorsque j'exécute la macro de sauvegarde de saisie de mon USF ( Macro BTOSAVE du Formulaire FORMEVAL), le fichier se ferme sur l'étape d'affectation des données (ActiveCell.Offset(0, 0) = Me.CBONOM)

=> Lorsque j'essaye d'ajouter une ligne dans un tableau servant à alimenter mes LD (Feuille "ADMIN"), j'ai le même bugg.

Après 1 semaine de recherche de solution, j'en déduis que le pb viens de mon tableau structuré et non de ma macro (mais sans certitude, je débute en VBA)

J'ai refais sans succès mon fichier plusieurs fois en repartant de zéro et ne vois pas d'issue. HELP ME PLEASE ! (Fichier en PJ)

Merci par avance,

Bonjour

Pourquoi utiliser des cells dans un tableau structuré...

J'ai répondu à la premiere question et modifier les 135 contrôles...

Je te laiise faire pour le reste...

A+ François

Salut,

Petites réflexions avant de regarder le code

  • Tes tableaux structurés n'ont pas vocation à être vus puisque tu as des formulaires pour les modifier( donc nul besoins de les mettre en forme)
  • Puisque tu travaille avec des tableaux structurés alors utilises toutes leurs propriétés et méthodes (exemple ListRows.Add)

La procédure Annuler peut être simplifiée comme suit :

Private Sub BTO_ANNULER_Click()
    Dim Item As Control
    For Each Item In Me.Controls ' // Possiblité de choisir aussi une ou des pages
        Select Case TypeName(Item)
            Case "TextBox"
                Item.Value = vbNullString
            Case "ComboBox"
                If Item.ListCount > 0 Then Item.ListIndex = -1
        End Select
    Next Item
End Sub

Tu dois pouvoir modifier ta condition pour éviter un Exit Sub

Private Sub CBONOM_AfterUpdate()
    Set Ws = Feuil1
    Dim Ligne As Long
    If Me.CBONOM.ListIndex = -1 Then Exit Sub
    Ligne = Me.CBONOM.ListIndex + 12
    Me.TEXTPRENOM = Ws.Cells(Ligne, "G")

End Sub

Je te renvoie sur l'aide de Microsoft concernant les test If ElseIf, Else

Instruction If...Then...Else (VBA) | Microsoft Learn

If Len(Me.CBONOM) = 0 Then
        Me.lblmessage = "Veuillez renseigner le nom du conseillé évalué."
        Me.CBONOM.SetFocus
    ElseIf Len(Me.TEXTPRENOM) = 0 Then
        Me.lblmessage = "Veuillez renseigner le prénom du conseillé évalué."
        Me.TEXTPRENOM.SetFocus
    ElseIf Len(Me.TEXTDATE) = 0 Then
        Me.lblmessage = "Veuillez renseigner la date d'évaluation."
        Me.TEXTDATE.SetFocus
    ElseIf Len(Me.CBOCONTROLEUR) = 0 Then
        '...
        '...
        '...

Bonjour François,

merci beaucoup pour votre réponse et toutes mes excuses pour mon retour tardif (j'étais persuadé que j'allais recevoir un mail m'informant d'une réponse à mon post, navré.)

Merci pour le fichier rectifier que j'ai testé, mais malheureusement, mon problème persiste :

Lorsque je souhaite ajouter une ligne à un de mes tableaux dans la feuille "Admin" en me mettant sur la 1ere ligne vide, le fichier se ferme puis un fichier récup se réouvre.

Mon problème est bien sur ces tableaux en feuille admin, mes USF sur la feuille "EVAL" fonctionnent, même si mes codes de débutants ne sont très certainement pas optimisés.

En relisant mon post je constate que j'ai fais une erreur sur le point suivant :

"=> Lorsque j'exécute la macro de sauvegarde de saisie de mon USF ( Macro BTOSAVE du Formulaire FORMEVAL), le fichier se ferme sur l'étape d'affectation des données (ActiveCell.Offset(0, 0) = Me.CBONOM)"

Désolé, ne pas tenir compte de ce point car ce pb concernait un USF de saisie des tableaux Admin que j'ai enlevé dans le fichier envoyé pour le rendre plus compréhensible. Sur ce USF, j'avais le bug au moment de l'imputation dans mon tableau avec l'erreur suivante :

image

C'est pour cela que j'en déduis que mon pb est bien l'impossibilité d'ajouter une ligne à mes tableaux "Admin", que j'essaye de le renseigner manuellement ou via un USF. Ce qui est surprenant, c'est que le bugg se produit de façon aléatoire.

Pourriez-vous me dire si vous rencontrez le même bugg sur votre PC ?

Merci encore pour votre aide,

Bonjour Jean-Paul,

je vous remercie pour l'attention porté à mon pb et vous présente également mes excuses pour mon retour tardif pour les mêmes raisons évoquées ci-dessus.

Merci pour vos conseils d'encodage que je vais appliquer.

Voici mes réponses à vos 2 points évoqués :

1/ Tes tableaux structurés n'ont pas vocation à être vus puisque tu as des formulaires pour les modifier( donc nul besoins de les mettre en forme)

=> Mes tableaux dans la feuille "ADMIN" sont structurés car ils alimentent des Listes déroulantes pour mon USF de saisie. J'ai besoin que ces listes déroulantes puissent être évolutives et le tableau structuré est les seul moyen que je connaisse

2/ Puisque tu travaille avec des tableaux structurés alors utilises toutes leurs propriétés et méthodes (exemple ListRows.Add)

=> Je ne connais pas encore cette propriété et je vais me documenter sur ce point, merci

Merci, si vous avez une piste sur mon pb évoqué dans ma réponse à François, je suis bien évidemment preneur.

Sébastien

Bonjour

Tu devais avoir un bug sur la feuille ADMIN

A+ François

Merci bcp François,

si j'ai bien compris tes modifs, tu as alimenté la plage de données des combobox dans la macro d'initialisation de mon USF avec la ligne suivante : Me.CBOCONTROLEUR.List = [TAB_CONSEILLERS].Value).

Merci pour cette méthode que je découvre. De mon côté, je nommais ma plage de données LD que je mentionnais ensuite dans le paramètre Rowsource de ma combobox. Ce qui me surprends c'est que mes autres fichiers avec cette methode ne buggent pas...un mystère à élucider.

je vais appliquer ta méthode à l'ensemble de mon fichier d'origine et voir si le bugg a disparu.

Je te tiendrai au courant.

Merci encore 1 000 fois pour ton aide.

Sébastien

Le Bugg était sur la feuille ADMIN... (je ne sais pas pourquoi)

A+ François

Bonjour

Quelques bug corrigés

A+ François

Merci encore François pour ton aide précieuse.

Je te confirme, grâce à toi, que mon bugg initial est solutionné. (Vive le .list !)

Pour les personnes concernées, la méthode que j'utilisais pour avoir des listes déroulantes évolutives n'est pas stable dans le temps.

Rechercher des sujets similaires à "bugg listes deroulantes tableau structure utilisees usf"