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

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")
 

sebastaupole

XLDnaute Nouveau
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
 

sebastaupole

XLDnaute Nouveau
Merci beaucoup je vais regarder le code et essayé de bien comprendre
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • FormGroupesOptions.xlsm
    154.2 KB · Affichages: 5
Dernière édition:

sebastaupole

XLDnaute Nouveau
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
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de FOrmModifCreation-2.xls
    85 KB · Affichages: 7
Dernière édition:

sebastaupole

XLDnaute Nouveau
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é.
 

patricktoulon

XLDnaute Barbatruc
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:

sebastaupole

XLDnaute Nouveau
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.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…