Microsoft 365 Boucle Checkbox ActiveX + Report dans TextBox

ExcLnoob

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterai mettre un code, dans plusieurs Textbox sur un Uerform, qui si 1 Checkbox parmi plusieurs est cochée dans une feuille, la valeur des Textbox seront les données de certaines cellules adjacentes de la même ligne.

Par exemple, les Checkbox sont en cellules A. Si la checkbox5 de la ligne 6 est coché, cela copie, dans les Textbox1, TextBox2, ou autre de l’USerform généré, les données de la colonne B, D, E, ou autres de la même ligne.

Mais je n’arrive pas à faire référence à la cellule liée qui est, dans l’exemple, en A6, et ni même à faire une boucle (je suppose que c’est la solution…) pour ne pas avoir à répéter le code sur chaque Checkbox.

(La boucle m’aiderait également à ne pas avoir 49 codes pour chacun des Checkbox de ma feuille… ;)).

A noter que j’ai utilisé des Checkbox en sélectionnant Contrôles ActiveX directement sur la feuille.

Je n'arrive pas à joindre de fichier. Malgré la suppression de quasi toutes les données sauf les essentielles le site trouve trop volumineux mon fichier de 2,65Mo

Pourriez-vous m’aider/m’orienter svp ? J’ai farfouillé comme un fou sans succès et je craque un peu là… :(

En espérant avoir été explicite.
Je vous remercie par avance.
 
Dernière édition:
Solution
Bonsoir @Oneida, Bonsoir le Forum,

@Oneida
Pour répondre à ta question, les CheckBox sont normalement sur la zone A2:A3
J'ai testé je l'ai vu. Peut-être un problème dans le lien où alors (encore) je me suis mal exprimé...😓

Pour ce qui est de mes questions, j'ai trouvé !!!

En fait j'ai changé mon fusil d'épaule et j'ai trouvé une soluce ici : https://excel-downloads.com/threads/associer-lancement-macro-a-une-checkbox.20075795/

Ça solutionne par mal de mes problèmes concernant les ChecBox.
En fait je voulais, à l'origine que les CheckBox s'affiche à la sélection de la ligne mais je n'arrivai pas à trouver l’événement approprié
C'est chose faite avec le code de @chris (Merci à vous!). J'ai simplement modifié car...

ExcLnoob

XLDnaute Occasionnel
Re-bonjour,
Petite clarification de ma pensée (enfin je crois..)

En gros j'imagine que faire référence à la cellule liée à la CheckBox va permettre d'utiliser "offset" (je suis pas sur de l'ortho et ne sais pas comment cela s'appelle) pour faire référence aux autres colonnes afin que les données de ces dernières soient remontées dans les TextBox afférentes (Ex CheckBox3, Ligne 4, cochée = (avec offset), valeur colonne B de la même ligne pour TextBox1, valeur colonne D de la même ligne pour TextBox2 et ainsi de suite)

Pour ce qui est de la boucle, je souhaiterai n'avoir qu'un code via ce moyen. En gros, pour toutes les CheckBox présentes dans la feuille, si 1 est cochée on lance l'action au-dessus.

En espérant avoir été plus explicite encore.
(Désolé ça se bouscule un peu dans ma tête..)

Merci encore pour votre intérêt et votre aide.
 

Oneida

XLDnaute Impliqué
Bonjour à tous,

Je souhaiterai mettre un code, dans plusieurs Textbox sur un Uerform, qui si 1 Checkbox parmi plusieurs est cochée dans une feuille, la valeur des Textbox seront les données de certaines cellules adjacentes de la même ligne.

Par exemple, les Checkbox sont en cellules A. Si la checkbox5 de la ligne 6 est coché, cela copie, dans les Textbox1, TextBox2, ou autre de l’USerform généré, les données de la colonne B, D, E, ou autres de la même ligne.

Mais je n’arrive pas à faire référence à la cellule liée qui est, dans l’exemple, en A6, et ni même à faire une boucle (je suppose que c’est la solution…) pour ne pas avoir à répéter le code sur chaque Checkbox.

(La boucle m’aiderait également à ne pas avoir 49 codes pour chacun des Checkbox de ma feuille… ;)).

A noter que j’ai utilisé des Checkbox en sélectionnant Contrôles ActiveX directement sur la feuille.

Je n'arrive pas à joindre de fichier. Malgré la suppression de quasi toutes les données sauf les essentielles le site trouve trop volumineux mon fichier de 2,65Mo

Pourriez-vous m’aider/m’orienter svp ? J’ai farfouillé comme un fou sans succès et je craque un peu là… :(

En espérant avoir été explicite.
Je vous remercie par avance.
Bonjour,
Il y a cette possibilite

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
 

ExcLnoob

XLDnaute Occasionnel
Bonsoir @Oneida, Bonsoir le Forum,

@Oneida
Pour répondre à ta question, les CheckBox sont normalement sur la zone A2:A3
J'ai testé je l'ai vu. Peut-être un problème dans le lien où alors (encore) je me suis mal exprimé...😓

Pour ce qui est de mes questions, j'ai trouvé !!!

En fait j'ai changé mon fusil d'épaule et j'ai trouvé une soluce ici : https://excel-downloads.com/threads/associer-lancement-macro-a-une-checkbox.20075795/

Ça solutionne par mal de mes problèmes concernant les ChecBox.
En fait je voulais, à l'origine que les CheckBox s'affiche à la sélection de la ligne mais je n'arrivai pas à trouver l’événement approprié
C'est chose faite avec le code de @chris (Merci à vous!). J'ai simplement modifié car le code s'applique (si j'ai bien tout saisi) à un tableau mais je ne peux pas l'appliquer à mon cas car le tableau fait bugger la copie de mes datas de la feuille d'origine vers ma feuille Extraction
j'ai donc fait ça :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("T_Cible")) Is Nothing Then Exit Sub
    If Target.Value = "" Then
        Target.Value = "ü"
'Action à adapter
        If MsgBox("Voulez-vous réceptionner cette ligne de commande ?", vbYesNo + vbQuestion + vbDefaultButton2, "Question") = vbYes Then
        UserForm3.Show
    Else
        MsgBox "Réception annulée !" & Chr(10) & "Veuillez selectionner une autre ligne", vbOKOnly + vbCritical, "Annulation"
        Target.Value = ""
    End If
    End If
End Sub
Pas beaucoup de changement mais c'est fonctionnel
Avec une petite MEFC quand on double-click sut la cellule, c'est top !!🤩

Pour la deuxième partie de mon problème, c'est résolu également...😅
J'ai décidé d'apprendre (ou plutôt de comprendre)!

J'ai donc mis en place ce code pour que mes TextBox soient remplies si une des cellules de la colonne A sont non-vides :
Code:
Private Sub UserForm_Activate()

Dim MaCellule As Range

    For Each Cellule In Range("A2:A100")
        If Cellule.Value <> "" Then
           
            TextBox1.Value = ActiveCell.Offset(0, 1).Value
            TextBox2.Value = ActiveCell.Offset(0, 3).Value
            TextBox3.Value = ActiveCell.Offset(0, 4).Value
            TextBox4.Value = ActiveCell.Offset(0, 5).Value
            TextBox5.Value = ActiveCell.Offset(0, 6).Value
            TextBox20.Value = Date
            TextBox7.Value = TextBox4.Value
            TextBox14.Value = TextBox4.Value
           
        End If

Next Cellule
End Sub

C'était sans doute tout bête mais bon..
Ne reste plus qu'à reporter dans les bonnes colonnes d'une autre feuille les valeurs des TextBox nouvellement remplies...

Je suis désolé de vous avoir sollicité alors que j'ai trouvé la solution de moi-même 😅
Comme quoi dès fois on bloque contre un mur alors qu'il y a une porte qu'il suffit d'ouvrir juste à côté....

Merci @Oneida de l'intêret que vous avez porté à ma question. Merci pour le lien cijoint.com (que je réutiliserai sans aucun doute)
Merci @chris pour votre code
Merci au Forum d'être là !!

Bonne soirée
 

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan