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

XL 2016 groupe de trois boutons options

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 !

sebastaupole

XLDnaute Nouveau
bonjour je recherche un code pour un groupe de trois boutons d'options j'ai celui la avec la fonction IIF mais bien sur il ne sert que pour deux boutons pouvez vous m'aider svp
.Cells(RecordNumber, 11) = IIf(Me.OPTComAlu = True, "COM", "VAL", "Lit")
 
Bonjour c'est beaucoup plus clair moi je m’entêtait avec UCase(.Cells(RecordNumber, bon après j'ai beaucoup a apprendre en tout cas merci pour votre aide
 
Merci beaucoup je vais regarder le code et essayé de bien comprendre
 
Une autre façon plus classique


VB:
Private Sub B_validation_Click()
  If Me.textbox2 = "" Then
     MsgBox "Saisir une affaire"
     Me.textbox2.SetFocus
     Exit Sub
  End If
  '--- Transfert Formulaire dans BD
     Me.enreg = ligneEnreg
   For i = 1 To 8
     If IsNumeric(Me("textbox" & i)) Then
       f.Cells(ligneEnreg, i) = Val(Me("textbox" & i))
     Else
       f.Cells(ligneEnreg, i) = Me("textbox" & i)
     End If
   Next i
   '-- groupes
   For i = 1 To 9
     temp = ""
     For Each c In Me("groupe" & i).Controls
       If c.Value = True Then temp = c.Caption
     Next c
     f.Cells(ligneEnreg, i + 10) = temp
   Next i
End Sub

Boisgontier
 

Pièces jointes

Dernière édition:
le code a totalement changé, donc en utilisant "=c.Caption" cela reprend les valeurs du caption des parametres pour le mettre dans la cellule suivant le choix voulu, je suis novice j'essaye de comprendre et glane des codes ici et la, c'est pas facile mais ça m’intéresse beaucoup
 
Bonsoir,

>le code a totalement changé, donc en utilisant "=c.Caption" cela reprend les valeurs du caption des parametres pour le mettre dans la cellule suivant le choix voulu, je suis novice j'essaye de comprendre et glane des codes ici et la, c'est pas facile mais ça m’intéresse beaucoup

Voici un exemple simple: Quelque soit le nombre d''options, le code reste inchangé.

VB:
   '-- Civilité
   temp = ""
   For Each c In Me.Civilité.Controls
     If c.Value = True Then   temp = c.Caption
   Next c
   f.Cells(ligneEnreg, 2) = temp



Boisgontier
 

Pièces jointes

Dernière édition:
re

essaie celui la 😉
super, merci pour le travail fourni, j'ai eu plusieurs proposition et toute différente pour le même résultat je suis débutant et le vba m'interresse beaucoup j'essaye de comprendre mais c'est pas toujours facile surtout quand je vois que pour une utilisation il y a plusieurs façon de faire, j'aimerai savoir a quoi correspond ce bout de code placé dans le formulaire
Function ok()
ok = t2 <> "" And t3 <> "" And t4 <> "" And t5 <> "" And t8 <> "" And t6 <> "" And t7 <> ""
ok = ok And Len(K.Tag & L.Tag & M.Tag & N.Tag & O.Tag & P.Tag & Q.Tag & R.Tag & S.Tag) = 27
End Function

merci pour l'aide que vous m'avez apporté.
 
re


t2 , t3 , t4 , t5 , t8 sont les text box
t7 et t6 sont les combobox

pour ne pas generer d'erreur ou des enregistrement a moitié on control que tout soit duement remplie
alors
ca
VB:
ok = t2 <> "" And t3 <> "" And t4 <> "" And t5 <> "" And t8 <> "" And t6 <> "" And t7 <> ""
ca se traduit parok= t1 à t8 qui ne sont pas vides donc si c'est tout rempli ok=true



comme dans le clic des optionsbutton le parent.tag reçoit le caption (com , val ou lit)quand il est true on a plus qu'a contrôler les tag des frames parent des options
pour cela les valeurs réunies doivent faire 27 caractères
donc maintenant je rajoute a ok le contrôle que tout les groupes ont un option choisi

ok = ok And Len(K.Tag & L.Tag & M.Tag & N.Tag & O.Tag & P.Tag & Q.Tag & R.Tag & S.Tag) = 27

donc si l'un d'entre eux n'est pas rempli ou coché pour les optionbutton ok sera false sinon true

et après
si ok on inscrit la nouvelle ligne ou modifie une ligne si c'est le bouton modifier et si PAS OK on a le msgbox

c'est ce que l'on appelle des additions logiques truc =condition1 et condition2 et condition3 et etc.....
on s'en sert pour une variable boolean OK sera true ou false

en gros on rassemble toutes condition en une seule


un exemple simple
Code:
sub test()

a=10

b=20

c=25

ok=a<20 and b<20 and c<20

msgbox ok 'le msgbox devrait renvoyer false  car l'un d'entre eux est plus grand que 20



'maintenant

a=10

b=15

c=18

ok=a<20 and b<20 and c<20

msgbox ok 'le msgbox devrait renvoyer true car il sont tous en dessous de 20

end sub

les operateurs des additions logiques sont :
And ceci =et ceci
Or ceci= ou ceci
Xor ceci =et/ou ceci
et les composé
Or not ceci = ou pas(ceci)
And not cela= et pas (cela)

selon ton besoins tu peux jouer avec
 
Dernière édition:
Bonjour merci je comprend mieux, souvent se qui est dommage sur les sites qui parle de code VBA ils donnent des exemples sans vraiment approfondir les explications ce qui n'est pas évident a déchiffrer, en tout cas merci beaucoup et je garde excel-downloads sous le coude.
 
- 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

D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Réponses
5
Affichages
501
Réponses
3
Affichages
672
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…