Figer les valeurs d'une CheckBox

  • Initiateur de la discussion Initiateur de la discussion Kristof
  • Date de début Date de début

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 !

K

Kristof

Guest
Bonjour à tous,

Le fichier dont je parle est joint à ce mail.

1. Dans ce fichier, j'ai déjà fait une sélection grâce au formulaire (userform1) cependant si je reviens en A1 ou une sléection à déjà été faite toutes les informations disparaissent. Comment faire pour que lors du retour sur une cellule les informations ne disparaissent pas ? (C'est à dire que les cases restent toujours cochées lors d'une nouvelle sélection de la cellule et que cette sélection soit modifiable).

2. Comment faire également pour déclencher l'apparition du formulaire sans être obligé de faire un va et vient ? Je m'explique : en A6, je fais ma sélection grâce au formulaire, je termine en cliquant sur Ok mais là je m'aperçois que j'ai fais une erreur sur ma sélection. Dans l'état actuel , je suis obligé de changer de cellule et de revenir sur la cellule A6 pour faire ma modification (et même tout recommencer sinon mon anciene sélction disparaît (Cf question 1).

Merci pour l'aide apportée.

Kristof
 

Pièces jointes

Re : Figer les valeurs d'une CheckBox

1- Dans un module standard:
Public UsfVisible As Boolean

2- Dans le Userform
'Evenements du userform
Private Sub UserForm_Initialize()
UsfVisible = True
End Sub

Private Sub UserForm_Terminate()
UsfVisible = False
End Sub

'Créer une procédure public dans le userform
Public Sub AnalyseCellule(c As Range)
Dim tbl
Dim i As Integer

' Tableau recevant les noms des controls suivant le contenu de la cellule
tbl = Split(c, "/")

' Si au moins 1 nom a été trouvé
If IsArray(tbl) Then
on error Resume Next
For i = 1 To 3
'réinitialise les controls à False
Me.Controls("CheckBox" & i).Value = False
Next i

For i = 0 To UBound(tbl)
'Initialise les controls à True si leur nom est dans le tableau
Me.Controls(tbl(i)).Value = True
Next i
End If
End Sub

3 - Dans le module de code de la feuille
'Evenement SelectionChange
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A1:A7")) Is Nothing Then
If Not UsfVisible Then UserForm1.Show False
'Afficher la form non modale
UserForm1.AnalyseCellule Target.Range("A1") ' Seule la première cellule de la sélection est prise en compte
End If

End Sub
 
Re : Figer les valeurs d'une CheckBox

Merci Excel lent et Hasco pour cette aide très précieuse tout fonctionne à merveille. J'ai tout de même utisé la solution de Hasco car exactement ce que je recherchais.

Bonne journée,

Kristof
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

G
  • Question Question
XL 2013 Excel VBA
Réponses
2
Affichages
1 K
Golfolies
G
L
Réponses
2
Affichages
1 K
L
W
Réponses
8
Affichages
2 K
Willmaz
W
M
Réponses
13
Affichages
6 K
Chalafraiz
C
H
Réponses
6
Affichages
1 K
Hpotter
H
K
Réponses
8
Affichages
2 K
K
J
Réponses
1
Affichages
946
D
Retour