Microsoft 365 Formulaire dans une feuille

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous :)

Je souhaite avoir un formulaire dans un feuille (sans UserForm).
J'ai fait des recherches et trouvé un modèle que je trouve "sympathique".

Il est en anglais et j'ai modifié certaines parties en français.

J'ai également voulu ajouter un bouton et j'ai également modifié ce qui me semblait être à modifier.
A l'exécution, j'ai une erreur :
1665872773578.png


Le code d'origine avant ajout du bouton "Mle" est : .Range("C" & iRow).Value = IIf(optMr.Value = True, "Mr", "Mme")
J'ai tenté ça : .Range("C" & iRow).Value = IIIf(optMme.Value = True, "Mr, Mme, Mle")
Je n'arrive pas à le modifier pour que ça fonctionne Grrrr !!!
Pourriez-vous me donner le bon code ?

En cas, je joins le fichier test.
Un grand merci du soir...
:)
 

Pièces jointes

  • Worksheet-Form2.xlsm
    83.8 KB · Affichages: 11
Dernière édition:

laurent950

XLDnaute Accro
Bonsoir Jean marie bien sur
@ Laurent
j'avais proposé mais sans succés
Un imbriqué de Si en VBA Soit deux IIF

c'est cette variable qui était pas la bonne :
OptMr.Value il fallait la remplacer par celle la OptionMr.Value
.Range("C" & iRow).Value = IIf(OptMr.Value = True, "Mr", IIf(optMme.Value = True, "Mme", "Mle"))

VB:
           '.Range("C" & iRow).Value = IIf(OptionMr.Value = True, "Mr", "Mme")
           'If .Range("C" & iRow).Value <> "" Then .Range("C" & iRow).Value = "Mle"
         
            .Range("C" & iRow).Value = IIf(OptionMr.Value = True, "Mr", IIf(optMme.Value = True, "Mme", "Mle"))

et cela fonctionne j'ai corrigé le Poste #26 est ajouté votre solution et mentionné aussi
Bravos jean marie
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Laurent
non j'avais modifié le Nom du Control , je me suis dit pourquoi "OptMme" et "OptMle" et "OptionMr"
Donc j'ai renommé le Control "OptMr" !
Voir la vidéo qui image mon propos (plus haut) la cellule "Mle"
Jean marie
 

Pièces jointes

  • Lionel-10.gif
    Lionel-10.gif
    373 KB · Affichages: 16

ChTi160

XLDnaute Barbatruc
Re
à Laurent et Lionel

Il faut renommer le Control OptionMr en OptMr , ça me semble plus Logique Lol
Et mettre ce Nom (OptMr) dans le Code :
VB:
 .Range("C" & iRow).Value = IIf(OptMr.Value = True, "Mr", IIf(optMme.Value = True, "Mme", "Mle"))
Ou alors ne pas renommer le Control "OptionMr" en "OptMr" et
Modifier le Code
VB:
 .Range("C" & iRow).Value = IIf(OptionMr.Value = True, "Mr", IIf(optMme.Value = True, "Mme", "Mle"))
Bon j'arrête de vous embêter !
EDIT :
Lionel pourquoi n'utilises tu pas les Balises pour le Code , plutôt que des Images ?

Bonne fin de Soirée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
La dernière pour Lionel Lol(promis)
Code:
Private Sub cmdEnregistrer_Click()
    Application.ScreenUpdating = False
    Dim iRow As Long
    iRow = Sheets("Data").Range("A1048576").End(xlUp).Row + 1
    If ValidateForm = True Then
        With ThisWorkbook.Sheets("Data")
           .Range("A" & iRow).Value = iRow - 1
           .Range("B" & iRow).Value = txtName.Value
'           .Range("C" & iRow).Value = IIf(OptMr.Value = True, "Mr", IIf(optMme.Value = True, "Mme", "Mle"))
           .Range("C" & iRow).Value = IIf(OptMr.Value = True, "Mr", "Mme")
            If .Range("C" & iRow).Value <> "" Then .Range("C" & iRow).Value = "Mle"
           .Range("D" & iRow).Value = cmbQualification.Text
           .Range("E" & iRow).Value = txtCity.Value
           .Range("F" & iRow).Value = txtState.Value
           .Range("G" & iRow).Value = txtCountry.Value
        End With
                Call Reset
    Else
        Application.ScreenUpdating = True
        Exit Sub
    End If
        Application.ScreenUpdating = True
End Sub
Une vidéo pour comment joindre du code sur XLD , comme ci-dessus Lol
Jean marie
 

Pièces jointes

  • Lionel-11.gif
    Lionel-11.gif
    901 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
312 210
Messages
2 086 281
Membres
103 170
dernier inscrit
HASSEN@45