Control dans Userforme

Bonsoir à tous,

J'ai créer un userform avec différents contrôles 35 environs et sur Texbox "appelé commentaires" dont le controlsource et :données!em5 je n'arrive pas à retrouver mon commentaire dans cette cellule.Ai-je fais un oubli dans la fenêtre des propriétés?

Merci de votre aide

Cordialement

Gérard

Qu'est-ce que tu cherches à faire au juste, clairement.

Bonsoir Math, bonsoir le Forum,

Je récupére des questionnaires de satisfaction papier avec le nom,des dates,et diverses questions tout au cour de la saison. Avec cet Userform je renseigne une base de donnée .Dans ce questionnaire il y a une zone réservé aux suggestions, et donc dans l'userform j'ai créer un texbox pour taper ces suggestions et je souhaiterais les retrouver dans la feuil. "données ".Toutes les autres commandes(optionbouton) fonctionnent et remplissent bien mes cellules de destination dans ma feuille sauf le texte du texbox .Il y a t-il un oubli de ma part dans la fen^tre des propriétés ou dans la Commande si dessous

'COMMENTAIRES

Sheets("données").Range("em5").Value = Text

Merci bonne soirée

Gérard

A quoi fait référence "TEXT" dans ton exemple? Si c'est une variable contenant le texte à copier dans la cellule, ça va. Tu peux toujours vérifier si la variable contient du texte.

Tu peux aussi écrire

Sheets("données").Range("em5").Value = NomDuTextBox.Text

si ça ne fonctionne pas post nous ton code ou un fichier

Bonsoir Math,le forum,

Je te joint le fichier,la commande ne fonctionne pas

d'avance merci

Cordialement

Gérard

Bonjour,

-Pour la note qui ne s'écrivait pas en EM5, change

Sheets("données").Range("em5").Value = Text

pour

Sheets("données").Range("em5").Value = Commentaires.Text

-Pour simplifier le code, tu n'es pas obligé de faire des If pour chaques OptionButton, car tu gardes toutes les possibilité de réponses de toutes façon. Alors tu pourrais faire:

   'PISCINES
    Sheets("données").Range("i5").Value = CInt(Piscines_TS.Value) * -1
    Sheets("données").Range("j5").Value = CInt(Piscines_S.Value) * -1
    Sheets("données").Range("k5").Value = CInt(Piscines_PS.Value) * -1
    Sheets("données").Range("l5").Value = CInt(Piscines_D.Value) * -1
    Sheets("données").Range("m5").Value = CInt(Piscines_NR.Value) * -1

La valeur des OptionButton est vrai ou faux. Je la convertis en nombre avec CInt( ... ) , ça me donne -1 pour vrai et 0 pour faux. Ensuite on multiplie par -1 pour avoir 1 pour vrai et encore 0 pour faux.

-Si tu veux qu'un groupe d'option se coche NR automatiquement,

Private Sub Infrastructure_Non_Click()
    Piscines_NR.Value = True
    Tennis_NR.Value = True
    R_Forme_NR.Value = True
    Terrains_Sports_NR.Value = True
    Mini_Golf_NR.Value = True
    Practice_Golf_NR.Value = True
    Salle_TV_NR.Value = True
End Sub

un exemple quand tu cliques sur Infrastructure_Non.

- Au lieu de tout remettre les controles à vide un à un, tu peu faire:

Dim c As Control
        For Each c In Me.Controls
            Select Case TypeName(c)
                Case "TextBox"
                    c.Value = ""
                Case "OptionButton"
                    c.Value = False
            End Select
        Next c

C'est une boucle qui prend les controles un à un. Si c'est de type Textbox, le controle est égale à "" et si c'est un optionbutton, c'est égale à false

Si tu as d'autres questions hésite pas

Bonsoir Math, le forum

Pour le coup tu me donne du travail, merci pour ton analyse rapide,je suis sur les modifs

Une autre question: lors de la saisi dans case "Organisme" de l'userform peut-on renseigner la feuille organisme et toujours avoir la liste déroulante.

cordialement

-- 19 Aoû 2010, 21:51 --

re bonsoir Math,

J'ai quelques problèmes avec deux de tes contrôles ils restent en rouge erreur de compilation?

Private Sub Infrastructure_Non_Click()

Piscines_NR.Value = True

Tennis_NR.Value = True

R_Forme_NR.Value = True

Terrains_Sports_NR.Value = True

Mini_Golf_NR.Value = True

Practice_Golf_NR.Value = True

Salle_TV_NR.Value = True

End Sub

'Remise à zéro des Saisies

Dim c As Control

For Each c In Me.Controls

Select Case TypeName(c)

Case "TextBox"

c.Value = ""

Case "OptionButton"

c.Value = False

End Select

Next c

Dois-je modifiè quelques choses ?

Merci bonne soirée

Gérard

Bonjour,

je m'incruste dans ce fil pour ton erreur en rouge.

Enlève les espaces (ou retrait) devant toutes les instructions de ton code.

Lorsque tu postes un code, n'oublie pas d'utiliser les balises en sélectionnant ton code puis en cliquant sur le bouton "code" dans la barre d'outils.

Amicalement

Bonjour Dan, le Forum,

Merci pour ta prise de main sur le post, et mes excuses pour l'envoi du code.

Je ne saisi pas quand aux espaces ou retrait, j'ai essayer mes rien y fait "erreur de compilation Attendu: fin d'instruction".

Je ne fais que copier le code et le colle sur la feuille de code.

Merci bonne journée

Gérard

je m'excuse, je t'ai envoyé les codes sans t'expliquer où les mettres.

la première partie

Private Sub Infrastructure_Non_Click()
    Piscines_NR.Value = True
    Tennis_NR.Value = True
    R_Forme_NR.Value = True
    Terrains_Sports_NR.Value = True
    Mini_Golf_NR.Value = True
    Practice_Golf_NR.Value = True
    Salle_TV_NR.Value = True
End Sub

est une procédure qui ce déclenche quand on clique sur l'Option Infrastructure_Non. Copie le code à la toute fin.

L'autre code est à intégré dans ta procédure Valider_Click pour remplacer la section où tu remets tout à zéro

        Nom_Prénom.Value = ""
        Organismes.Value = ""
        Date_Début.Value = ""
        Date_fin.Value = ""

Infrastructure_Oui.Value = 0
Infrastructure_Non.Value = 0
Infrastructure_NR.Value = 0

        Piscines_TS.Value = 0
        Piscines_S.Value = 0
        Piscines_PS.Value = 0
        Piscines_D.Value = 0
        Piscines_NR.Value = 0

 etc ...

pour ta question sur la case Organisme, est-ce que tu veux que quand on inscrit quelque chose dans cette case et qu'on clique sur Valider, la valeur vienne s'écrire dans dans feuille organisme?

re,

Je voulais dire d'enlever les espaces dans le code pour avoir ceci :

Private Sub Infrastructure_Non_Click()
Piscines_NR.Value = True
Tennis_NR.Value = True
R_Forme_NR.Value = True
Terrains_Sports_NR.Value = True
Mini_Golf_NR.Value = True
Practice_Golf_NR.Value = True
Salle_TV_NR.Value = True
End Sub

Tu comprends ?

Bonjour Math, Dan,le forum,

Super avec tes explications,

Oui sur la question des Organismes , au fil du temps cela creera une base de donnée. Mais pourra t-on éviter les doublons ? si non on laisse comme çà

Merci bonne soirée

Gérard

voici une petite procédure pour ajouter sans doublons des organismes:

'La procedure sert à ajouter un organisme en évitant les doublons.
Private Sub AjoutOrganisme()
    'Avec la feuille Organisme
    With Sheets("organisme")
        'On utilise la fonction find pour trouver l'occurence de la valeur
        'du combobox organisme.
        Set c = .Range("A:A").Find(Organismes.Text, LookIn:=xlValues)

        'Si on ne trouve rien, C sera égale à Nothing,
        'donc il faut l'ajouter dans la liste
        If c Is Nothing Then
            'Détermine la ligne où ajouter la nouvelle entrée
            Dim DerLign As Integer
            DerLign = .Range("A65536").End(xlUp).Row + 1
            'Ajoute l'information
            .Range("A" & DerLign).Value = Organismes.Text

            'Rafraichis le combobox Organismes
            Organismes.RowSource = "organisme!" & .Range("A2:A" & DerLign).Address
        End If
    End With
End Sub

je te retourne ton fichier, j'ai pris la liberté de l'alléger un peu

Bonsoir Math, le Forum,

jai fais une réponse plustôt dans la soirée, je ne la retrouve pas bref....

donc pour ta question oui, de façon à créer au fil du temps une base de donnée, mais pourra t-on geré les doublons ? si non on laisse comme çà.

J'ai tout modifié et nickel, encore merci

bonne soirée

Gérard

-- 20 Aoû 2010, 22:01 --

Bonsoir Math,

Nos post se sont croisés, alors chapeau merci pour tout, je reprend la suite avec tes nouveaux codes pour finir, je ferme pas ce fil pour le moment le temps de boucler.

Encore merci super ton boulot

Bonne soirée

Gérard

-- 21 Aoû 2010, 08:11 --

Bonjour Math, le forum,

Bien voilà nickel, merci pour se super boulot

Bonne journée

Gérard

Rechercher des sujets similaires à "control userforme"