Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

USF et cases à cocher

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 !

moustic54

XLDnaute Occasionnel
Bonjour à tous

Je dois utiliser un certain nombre de cases à cocher ainsi que des cases options dans un formulaire mais je ne sais pas comment récuperer, dans un tableau, les informations saisies.

Autre question, comment prévoir une incrematation automatique n+1 (dans tableau 1ere colonne nommée rang) à chaque nouvel enregistrement ?
Je joins un petit bout de fichier sur lequel j'ai repris certaines données sans doute plus explicite.

Merci d'avance à ceux qui auront un peu de temps à me consacrer pour m'expliquer le code vba à utiliser.
 

Pièces jointes

Dernière édition:
Re : USF et cases à cocher

Re

pour ta dernière question, à priori tu as voulu créer une "sub" spécifique ("Sub nettoie"), mais tu n'a pas indiqué de "end sub" à ton bouton "enregistréé", et la macro n'est pas lancée... Laisse peut être tout simplement le code en supprimant la déclaration de "sub", en rouge et gras ci-dessous:

Code:
  If OptionButton3 = True Then .Cells(lg, 6) = Label5.Caption
  
End With
[B][COLOR="Red"]Sub nettoie()[/COLOR][/B]
  Me.Date_Saisie = ""
  Me.TextNom = ""
End Sub

@+
 
Re : USF et cases à cocher

Bonjour Pierrot

Merci pour la date, je vais tester de suite.
Pour mon probleme de liste, j'avais effectivement remplacé "RowSource" par "list" comme tu me l'avais conseillé plus haut dans ce fil mais je viens seulement de m'apercevoir que
dans sub "Private Sub ComboDep_Change()" j'ai repris in extenso ton code en oubliant de l'adapter à mon fichier à savoir la colonne D et non A ... Trop bête.

Mais merci beaucoup pour le coup de pouce
 
Re : USF et cases à cocher


Mais là un gros probleme :

Si ma liste se limite bien aux seuls départements (plus de lignes vides dans la liste) en utilisant cette méthode je perds le lien qui existe entre mon département et les villes liées à celui-ci.

Chose que me permet d'avoir cette formule :
HTML:
Private Sub UserForm_Initialize()
   Me.Date_Saisie = Date
   dlg = Sheets("INFOS").Range("A65536").End(xlUp).Row  ' Recherche la dernière ligne utilisée de la feuille INFOS
   ComboDep.RowSource = "INFOS!D2:D" & dlg
   With Worksheets("Infos")
        ComboVille.List = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Value
    End With
End Sub

Je suis un peu lent à te répondre mais c'est que j'essaye de tester à la fois sur le petit fichier que j'ai mis en ligne et sur mon application originale.

Sinon en supprimant en effet dans ma boucle sub nettoie çà fonctionne super.

Encore merci beaucoup pour ton aide.
Je vais voir comment conserver les liens departements / villes tout en ayant des listes correctes de part et d'autre.
 
Re : USF et cases à cocher

Re

sur le fichier que tu as transmis, cela à l'air de bien fonctionner. En choisissant un département, seules les villes de ce même département apparaissent dans la combo ville... Il y a une boucle sur l'événement change de la combo département qui alimente en conséquence la combo ville....
 
Re : USF et cases à cocher


Oui je sais que çà fonctionne sur le fichier transmis le code dans UserForm_Initialize faisait appel à la fonction "RowSource" mais si tu regardes tu verras que la liste des départements est trop longue avec grande partie vide d'où ma question initiale à savoir comment la limiter aux seuls départements de ma colonne D de la feuille "INFOS"

C'est pourquoi tu m'as indiqué la fonction "LIST" mais dans ce cas, je perds le lien entre département et villes.
C'est à croire que l'on ne peut pas avoir les 2 options possibles en même temps.
 
Re : USF et cases à cocher

Re

mais non, perso je l'alimente ainsi :

Code:
Private Sub UserForm_Initialize()
   Me.Date_Saisie = Date
   With Worksheets("Infos")
        ComboVille.List = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Value
        ComboDep.List = .Range("D2:D" & .Range("D65536").End(xlUp).Row).Value
    End With
End Sub

et ensuite lors d'un changement dans la combo "dept" :

Code:
Private Sub ComboDep_Change()
    Dim Cel As Range, Rng As Range
    If ComboDep.ListIndex = -1 Then Exit Sub
      With Worksheets("Infos")
        Set Rng = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
    End With
    With [B]ComboVille[/B]
      .Clear
        For Each Cel In Rng
      [B] If Cel = ComboDep Then .AddItem [/B]Cel.Offset(0, 1)
       Next Cel
   End With
End Sub
 
Re : USF et cases à cocher

Autre question sans rapport avec les precedantes :

Tu as pu voir que j'ai un certain nombre de CheckBox qui alimentent mon tableau selon méthode If CheckBox111 = True Then .Cells(lg, 7) = Label3.Caption....

Est il possible de prévoir une case à cocher qui permettrait si celle-ci est validée de considerer les autres comme étant cochées ?
Par exemple au niveau de la situation géographie, mettre une checkbox que j'appelerai Toutes zones si cochée = éviterait de cocher chaque zone qui serait de facto considerée comme validée et donc True ?
 
Re : USF et cases à cocher

Re

rajoute une CheckBox nommée "CheckBox1" et testes le code ci-dessous, devrait répondre à ta question :

Code:
Private Sub CheckBox1_Click()
Dim c As Control
If CheckBox1 Then
    For Each c In Me.Controls
        If TypeName(c) = "CheckBox" Then c.Value = True
    Next c
End If
End Sub

@+
 
Re : USF et cases à cocher

Ta formule fonctionne à merveille mais dans le fichier original j'ai de nombreuses CheckBox et là je voudrais que ne soient concernées que 8 d'entre elles, je les ai donc nommées CheckBoxGeo1, CheckBoxGeo2..... et ainsi de suite et essayé de modifier la formule comme ci-dessous

HTML:
Private Sub CheckBox1_Click()
Dim c As Control
If CheckBox1 Then
    For Each c In Me.Controls
        If TypeName(c) = "CheckBoxGeo" Then c.Value = True
    Next c
End If
End Sub

Bien entendu, cela ne fonctionne pas. Aurais tu dans ta boite une autre solution magique ?
 
Re : USF et cases à cocher

Re

essaye ainsi :

Code:
Private Sub CheckBox1_Click()
Dim c As Control
If CheckBox1 Then
    For Each c In Me.Controls
        If TypeName(c) = "CheckBox" and c.Name Like "CheckBoxGeo*" Then c.Value = True
    Next c
End If
End Sub

bonne soirée
@+
 
Re : USF et cases à cocher

Waouhhhhhhh ! Merci

Peux tu me dire comment fonctionnent les CheckBox en consultation sur un usf ?
Je sais pour les boutons à option que l'on peut faire ainsi :
HTML:
 Select Case Sheets("TABLEAU").Cells(ligne, 8)
    Case "En cours"
      Me.OptionButton7 = True
    Case "A faire"
      Me.OptionButton8 = True
    Case "Non concerné"
      Me.OptionButton9 = True
       End Select

Mais pour les Checkbox lorsque l'on procede de la sorte :

HTML:
Me.CheckBoxGeo1 = Sheets("TABLEAU").Cells(ligne, 25)
la coche apparait mais legerement grisée à l'inverse des boutons à options qui sont bien noirs.

Existe t il un moyen d'y remedier ou s'agit il là d'une action normale ?

Bonne soirée et merci beaucoup Pierrot
 
Re : USF et cases à cocher

Bonsoir moustic,

En l'absence de Pierrot, que je salue 🙂:

C'est pareil pour les CheckBox.
La cellule doit contenir VRAI ou FAUX.
 
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

C
  • Résolu(e)
Réponses
16
Affichages
3 K
cecenico
C
D
Réponses
4
Affichages
993
dkterreur
D
A
Réponses
0
Affichages
620
Axelle48
A
V
  • Question Question
Réponses
18
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…