XL 2021 numérotation CheckBox

nano33320

XLDnaute Junior
Bonjour à toutes et tous

Le sujet qui me perturbe aujourd'hui est un soucis de numérotation de CheckBox dans un UserForm.
J'utilise 3 UserForm quasi identique dans un outil de gestion des membres d'une asso.
"Nouvel Adhérent" / "Mise à Jour Adhérent" / "Information Adhérent"
Leurs CheckBox sont numérotés de 1 à 14 (activités).
Sauf que pour l'UserForm ci-dessous 8 CheckBox sur les 14 ont leur numéro qui a été changé dans Excel (ceux marqués), pour quelle raison ? Excel a ses raisons...???
Quand je veux réattribuer les numéros conformes au programme, j'ai un refus de VBA... ???
1710489568486.png

1710489632081.png

Pour les 2 autres UserForm identiques à la finalité et couleur près R.A.S. tout est Ok.
Dans le même UserForm le même problème se produit aussi pour le TextBox13 que j'ai dû renommer TextBox013

J'ai déjà rencontré ce problème une fois avec ce même UserForm,
je l'avais résolu en supprimant l'UserForm et en le recréant (j'avais conservé le code) mais c'est plutôt lourd...
Problème déjà rencontré 2 fois, pourquoi pas 3 ???
😵‍💫
Les macros fonctionnent, puis je constate un dysfonctionnement à l'affichage => n° changé... Pas Cool...
😣
Si vous avez une idée de l'origine de ce problème, et m'aider à le corriger
vous m'enlèveriez une belle épine du pied...

Merci de votre aide
Nano
 

nano33320

XLDnaute Junior
bonjour @nano33320
je réponds a ton Mp ici
cette capture parle d'elle même
Regarde la pièce jointe 1193752
J'avais déjà essayé, comme source "Nom" ou "ListAdherents" tant dans UserForm que dans le code => essaye des 3 options entre les 2 items avant de t'envoyer le fichier :
  • ListAdherents / ListAdherents
  • ListAdherents / Nom
  • Nom / Nom
en sauvegardant / ré-ouvrant pour les 3 options... sans résultat.
Je viens de réessayer... Toujours la même punition :
😣
bug...

La source "ListAdherents" m'affiche dans le ComboBox {n° Licence + Nom} au lieu de {Nom + Prénom} sans plus de succès...
 

nano33320

XLDnaute Junior
Ben oui 🤔
N'ayant pas loin s'en faut un grand niveau de compétence en codage, je fais feu de tout bois...
J'utilise dans l'ordre :
  • mes petites connaissance en VBA
  • ce que je trouve sur le NET,
  • et l'aide précieuse des "kadors" de la programmation... Merci à vous tous
Bon "c'est en forgeant qu'on devient forgeron..."
En supprimant la valeur de "RowSource" ce bug disparaît,
😊
mais un autre apparaît
😒
1711643307401.png

Toute la liste des adhérents s'affiche => pas de menu déroulant ça dépasse la hauteur de la page et je ne peux pas aller chercher les dernier de la liste.
De plus j'ai les n° de licence et les Noms en lieu et place des Noms et Prénoms

😵‍💫😢
De quoi m'arracher les cheveux que je n'ai plus depuis longtemps...
 

patricktoulon

XLDnaute Barbatruc
re
VB:
Sub reliste()
    If Range("ListAdherents").Cells(2) <> "" Then
        If Range("ListAdherents").Rows.Count = 1 Then
            Adhérents.Column = Application.Transpose(Range("ListAdherents").Resize(, 2))
        Else
' -------- Bug 1 -------------------
            Adhérents.List = Range("ListAdherents").Columns("B:C").Value
'            Erreur d'exécution 70 => permission refusée
' ----------------------------------
        End If
    End If
End Sub
et met moi le listrow de la combo à 30 ;)
 

nano33320

XLDnaute Junior
Une des dernières étape (j'espère)
c'est l'échec de ma mise à jour après modif des activités sportives
J'avais mis des "X" dans les cellules ça fonctionne pour l'affichage de l'existant ("X" ou 1 c'est pareil)
Pour la mise à jour j'ai supprimé les "X" remplacé par les 1 comme dans ta maquette
Quelque chose ne lui plait pas à priori ce n'est pas dans la valeur... dans les 2 cas même résultat
1711645815541.png
 

patricktoulon

XLDnaute Barbatruc
re
non mai vraiment tu le fait exprès c'est pas possible
c'est un prank ou est la caméra caché
regarde ce que tu a fait

VB:
Sub listesport()
    Dim C&
    With Listsport
        .Clear
        For C = 15 To Range("ListAdherents").Columns.Count - 2
            .AddItem Range("ListAdherents[#headerS]").Cells(C)
        Next
    End With
End Sub

dis moi ou est la 2d colonne avec les numéro de colonne là

comme ça
Code:
Sub listesport()
    Dim C&
    With Listsport
        .Clear
        For C = 15 To Range("ListAdherents").Columns.Count - 2
            .AddItem Range("ListAdherents[#headerS]").Cells(C)
            .List(.ListCount - 1, 1) = C
        Next
    End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
bon j'ai rattrappé le coup
mais il y a plein de trucs bizarre dans ton truc

serieux sais tu ce que tu fait ici
Code:
Private Sub TextBox6_Exit(ByVal cancel As MSForms.ReturnBoolean)
    If Not TextBox6 Like "[0][6-7][ ][0-9][0-9][ ][0-9][0-9][ ][0-9][0-9][ ][0-9][0-9]" Or TextBox6 Like "__ __ __ __ __" Then
        If Me.TextBox6.Text <> "" Then
            cancel = True
            MsgBox "Numéro Mobile non valide" & Chr(10) & " " & Chr(10) & "Saisir un n° à 10 chiffres commençant par" & Chr(10) & " " & Chr(10) & "   " & "'06'   ou   '07'"
            With TextBox6
                .SetFocus
                .SelStart = 0
                .SelLength = Len(TextBox6.Text)
            End With
            Exit Sub
        End If
    End If
End Sub

Private Sub TextBox7_Enter()
    If TextBox7 Like "[0][0-9][ ][0-9][0-9][ ][0-9][0-9][ ][0-9][0-9][ ][0-9][0-9]" Then GoTo 2
    Masque2 = "__ __ __ __ __"
    With TextBox7
        .Text = Masque2
        .SelStart = 0
        .SelLength = 0
2:         End With
End Sub
 

nano33320

XLDnaute Junior
Désolé, je suis sur le sujet un peu "bourrin", au niveau où tu en es en programmation, tu fais appel à des concepts que je n'ai jamais envisagé et auxquels je suis très loin de tout comprendre...

Pour le code ci-dessous, ".List(.ListCount - 1, 1) = C" me semblait n'ajouter que le n° de la colonne dans le ListBox "sport", n'y voyant pas d'intérêt pour les personnes qui auront à utiliser le fichier, probablement à tord, j'ai supprimé la ligne, ça ne semblait pas perturber le reste...
VB:
Sub listesport()
    Dim C&
    With Listsport
        .Clear
        For C = 15 To Range("ListAdherents").Columns.Count - 2
            .AddItem Range("ListAdherents[#headerS]").Cells(C)
            [B][COLOR=rgb(41, 105, 176)][I].List(.ListCount - 1, 1) = C[/I][/COLOR][/B]
        Next
    End With
End Sub
Pour les TextBox 6 & 7 (3 ce sont des formatages de saisie de n° de téléphone mobile pour le 6 et fixe pour le 7
ils se composent de 3 commandes par TextBox (Enter/KeyPress/Exit) pour chacun des TextBox.
Imposant le 06 et 07 pour les mobile et 01,02,03,04,05,09 pour les fixes.
C'est une adaptation d'un post que j'ai trouvé sur le NET et qui ma fois ne me crée pas de soucis partticulier, je les ai déjà utilisé sur un autre fichier qui tourne et là ils ne semble pas poser de soucis...
 
Dernière édition:

Discussions similaires