Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2012, 22h33   #1
Membre du Club
 
Homme
Étudiant
Inscription : janvier 2011
Messages : 330
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 330
Points : 47
Points : 47
Par défaut Userform , frames et optionbutton

Bonsoir à tous,

heu voilà je suis étudiant et j'ai un projet à réaliser pour une entreprise. En fait je dois mener une étude statistique pour une entreprise et ma formation m'interdit d'utiliser le logiciel sphinx en raison de sa simplicité.
Donc je dois implémenter mon questionnaire sur excel pour récolter les données étant donné que l’enquête se fait par téléphone.
J'ai donc décider de créer un formulaire qui ressemble un peu à ça:


oui je sais il est très moche mais je ne suis pas un féru d'excel et encore moins un adepte du VBA

Donc le problème est le suivant je n'arrive pas à traiter les cadres contenant des optionbutton et je n'arrive pas à rentrer également dans mon tableaux les listes déroulantes.
Oui je sais vous n'avez rien compris lol^^
mais je crois que le code sera plus parlant

voilà le code associé au formulaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub CommandButton1_Click()
Sheets("result").Rows(2).Insert
Sheets("result").Range("A2").Value = UserForm1.TextBox1.Value
Sheets("result").Range("B2").Value = UserForm1.TextBox2.Value
Sheets("result").Range("C2").Value = UserForm1.TextBox3.Value
Sheets("result").Range("D2").Value = UserForm1.TextBox4.Value
If UserForm1.Frame1.Value = 1 Then
"cette condition concerne en l'occurance la question5 du formulaire"
Sheets("result").Range("E2").Value = "internationale"
Else
Sheets("result").Range("E2").Value = "nationale"
End If
End Sub
c'est principalement cette ligne qui me dérange:
Code :
1
2
3
4
5
6
 
If UserForm1!Frame1.Value = 1 Then
"cette condition concerne en l'occurance la question5 du formulaire"
Sheets("result").Range("E2").Value = "internationale"
Else
Sheets("result").Range("E2").Value = "nationale"
Je ne comprend pourquoi ça ne marche pas pourtant sur access cette instruction ne pose aucun soucis.

je vous serais infinimeeeeeeeeent reconnaissant de m'aider surtout qu'aucun des mes profs n'a été en mesure de me debloquer le problème.
huître est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 22h41   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

L'objet Frame n'a pas de propriété Value.

Pour l'insertion de données, il faudrait mettre le numero de ligne en variable. A moins que tu n'écrases tes données a chaque validation
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 23h23   #3
Membre du Club
 
Homme
Étudiant
Inscription : janvier 2011
Messages : 330
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 330
Points : 47
Points : 47
bonsoir
merci pour ta réponse mais je n'ai pas du tout compris
concernant le formulaire j'ai déjà fait les tests et les données ne s'écrasent pas j'obtiens bien ce que je veux.
mon seul problème ce sont les options du frame je n'arrive pas à les insérer dans mon tableau de donnés.
je peux utiliser
l'instruction

if isnull(optionbutton1)=false then "traitement"
mais le problème c'est que j'aurais une multitude de if à faire et de cas à traiter
huître est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 23h36   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Dans ce cas, penches toi vers les modules de classe

http://excel.developpez.com/faq/inde...ntroductionPOO
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 23h44   #5
Membre du Club
 
Homme
Étudiant
Inscription : janvier 2011
Messages : 330
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 330
Points : 47
Points : 47
c'est bon finalement j'ai trouvé un code très pratique

Code :
1
2
3
4
5
6
Dim x As Control
For Each x In Frame1.Controls
If x.Value = True Then
Sheets("result").Range("N2").Value = x.Caption
End If
Next
je te remercie quand même de m'avoir aider
huître est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h06.


 
 
 
 
Partenaires

Hébergement Web