[RESOLU] Case à cocher si colonne A remplie

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

white-angel

XLDnaute Nouveau
Bonjour a tous.
Je viens vers vous car je bloque sur une petite fonctionnalité de mon nouveau tableau.
Je trouve toujours la solution en cas de blocage sur votre site mais pour une fois, je bloque !!

Sur un tableau assez simple, j'aimerai créer une case à cocher en colone E uniquement si la colonne A de la même ligne est remplie.

Imaginons que je renseigne la cellule A1 (par n'importe quoi, c'est à dire qu'il faut qu'elle soit non vide), une case à cocher se créée automatiquement en E1.
Si je viens renseigner A2, alors case à cocher en E2.
J'ai pour l'instant palié le problème par une macro qui m'affiche un X au double clic, mais je ne suis pas pleinement satisfait de cette solution.
La case à cocher aura une action sur la colonne O de la même ligne qui contient une liste de choix.
Auriez vous une jolie solution à me proposer ?
Merci de votre réponse

JB
 
Dernière édition:
Re : Case à cocher si colonne A remplie

Bonsoir white-angel et bienvenue sur le forum.

Tu peux essayer ce code à placer dans le code de la feuille en question (ckick-droit sur le nom d'onglet puis "visualiser le code") :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim h As Integer, g As Integer
    h = Range("E" & Target.Row).Top
    g = Range("E" & Target.Row).Left
    If Not Intersect(Target, [A:A]) Is Nothing And Target <> "" Then
        ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=g, Top:=h, Width:=15, Height:=12).Select
    End If
End Sub

A+
 
Re : Case à cocher si colonne A remplie

Bonsoir Fred0o

Merci pour ta bienvenue 🙂 Je suis présent sur votre forum depuis 2009 🙂 Mais je ne poste quasiment jamais.
En effet, pas assez compétent pour aider les autres, mais assez pour m'en sortir avec votre aide 🙂
Ta solution est juste magique.
C'est Exactement ce que je cherchais.
Cependant, peut on pousser la solution à la perfection ?
Serait il possible d'avoir une check box de formulaire et non active x ?
Pense tu que cette dernière peut etre centrée par rapport aux dimensions de ma cellule E ?
Et dernière chose même si je ne pense pas que ce soit très utile mais on ne sait jamais : Peut on faire en sorte que si je supprime le contenu de ma cellule A, la check box disparaisse?
J'en demande peut être trop.
MERCI pour ta première réponse rapide 🙂
A+

---------------------EDIT-----------------------

En modifiant un peu le code, j'ai la réponse à 1 de mes questions.
J'ai pu remplacé par une CheckBox formulaire. Reste à la centrée, et la faire disparaitre si la colonne A est vidée

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim h As Integer, g As Integer, cb As CheckBox
    h = Range("E" & Target.Row).Top
    g = Range("E" & Target.Row).Left
    If Not Intersect(Target, [A:A]) Is Nothing And Target <> "" Then
       Set cb = ActiveSheet.CheckBoxes.Add(g, h, 0, 0)
    With cb
        .Text = ""
        .Value = xlOff
    End With
    End If
End Sub

Merci de m'éclairer
 
Dernière édition:
Re : Case à cocher si colonne A remplie

Re-bonsoir white-angel,

Voici le code modifié :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim h As Integer, g As Integer, l As Integer, c As Integer, cb As CheckBox
    h = Range("E" & Target.Row).Top
    g = Range("E" & Target.Row).Left
    l = Range("E" & Target.Row).Width
    c = g + Int(l / 2) - 8
    If Not Intersect(Target, [A:A]) Is Nothing And Target.Count = 1 Then
        If Target <> "" Then
            Set cb = ActiveSheet.CheckBoxes.Add(c, h, 0, 0)
            With cb
                .Text = ""
                .Value = xlOff
                .Name = "CheckBox_E" & Target.Row
            End With
        Else
            On Error Resume Next
            ActiveSheet.Shapes.Range("CheckBox_E" & Target.Row).Delete
            On Error GoTo 0
        End If
    End If
End Sub

A+
 
Re : Case à cocher si colonne A remplie

Bonsoir Fred0o

C'est EXACTEMENT ce que je recherche.
Je continue à avancer grâce à toi.

Je regarderai ton code plus en détail demain (car il se fait tard) et comme ça fait 2 jours que je suis sur le problème, j'ai le cerveau pollué.
Le but de ce forum étant d'apprendre et pas de se faire fournir les réponses, je reviendrai vers toi au cas ou ce code soit un peu trop complexe, si ça ne t'embête pas.
Je fini ma fonction demain et je met en résolu.
MERCI MERCI MERCI !!!
A bientôt
JB
 
Dernière édition:
Re : Case à cocher si colonne A remplie

Hello
Je reviens vers toi.
J'ai pu comprendre le code et ca parait si simple ...
Il n'y a que la facon de centrer la CB que je n'ai pas compris. (donc cette ligne : c = g + Int(l / 2) - 8)
Avec quelques explication peut etre.
Je cherche maintenant à inscrire quelque chose dans une cellule O de la même ligne et effacer le contenu si la case est décoché.
Mon code ne fonctionne pas ... mais j'avoue ne pas y avoir passer beaucoup de temps ...
As tu une solution ?
Merci encore !!!!
 
Re : Case à cocher si colonne A remplie

Hello
J'ai compris la formule pour centrer. J'ai confondu le l avec un 1. Mais du coup, j'ai compris !!!
Je n'arrive par contre toujours pas à faire le reste. Une fois la check box créée, si cette dernière est cochée, alors en colonne O de la même ligne s'affiche un texte. Si on la décoche, elle vide la case en O.
Merci pour tes lumières 🙂
JB

----------------------------EDIT---------------------------------

J'ai pu pallier :
J'ai rajouté l'option de liaison de cellule dans la macro :
.LinkedCell = "E" & Target.Row
Ma case est donc lié à la cellule dans laquelle elle s'affiche.
Puis en O, j'ai ajouter la formule :
=SI(E3=VRAI;"texte";"")
Et ca fonctionne...
Si tu as une solution par macro, je suis preneur.
MERCI ENCORE POUR TOUT 🙂
A+
JB
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
175
Réponses
15
Affichages
265
Réponses
1
Affichages
135
Réponses
10
Affichages
204
Réponses
18
Affichages
1 K
Réponses
11
Affichages
1 K
Retour