Porblème Boucle + récupération de données

Résolu
cs_Zouzou12345 Messages postés 7 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 20 avril 2009 - 16 avril 2009 à 10:21
cs_Zouzou12345 Messages postés 7 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 20 avril 2009 - 16 avril 2009 à 13:20
Bonjour à tous!
Je suis débutante en vba et j'ai un problème qui dure depuis 2 jours!
J'ai crée un Userform avec 2 listes déroulantes où on choisit le nom du module suivi (il y a une trentaine de choix) et l'année où on la suivit. Il y a ensuite 5 question où pour chacun on note le module de 1 à 4.

Je veux donc récupérer ces valeurs et les intégrer dans un tableau excel. Il existe une feuille par année, et ensuite j ai un tableau où dans la 1ere colonne il y a les intitulés de mes formations. (ligne4= module 1; ligne5=module2...)
la 2 colonne correspond à la 1 question, 3 colonne la question 2....
Voici mon code

x = listederoulante_année.Value
v = 4

Sheets(x).Select

'Do
'v = v + 1
'Loop Until Cells(v,1).value = Liste_module.Value

If q1_1.Value = True Then
Cells(v, 2).Value = Cells(v, 2).Value + 1
Else:
If q1_2.Value = True Then
Cells(v, 2) = Cells(v, 2).Value + 2

Else:
If q1_3.Value = True Then
Cells(v, 2) = Cells(v, 2).Value + 3

Else:
If q1_4.Value = True Then
Cells(v, 2) = Cells(v, 2).Value + 4
End If
End If
End If
End If

Voici pour la 1 question.
Le problème c'est que dans ma boucle Do , il ne trouve jamais le bon v. Il fait une boucle infini .
Pouvez vous m'aider??

Je ne suis peut être pas très clair dans mes explications. Si vous avez des questions n'hésitez pas à me les poser!!
Merci de votre aide

3 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
16 avril 2009 à 10:52
bonjour
es tu certain que dans tes cellules il y a EXACTEMENT le même texte que dans ta Liste_Module ?
pas d'espace avant ou après dans l'un ou l'autre
de plus tu écris ligne4= module 1; ligne5=module2...
donc ma deuxieme question est :
es tu certain que les espaces entre "module" et le chiffre soient partout pareils ?

de plus tu cherches dans ta colonne 1 a trouver un mot parmis une trentaine est ce que faire une boucle Do Loop est bien la bonne solution?
personnellement je ferais  plutot une boucle  For Next allant de  la ligne 4 à la derniere ligne ayant des données
sheets(x).Range("A65536").End(xlUp).Row te permet de connaitre le nombre de ligne dans la feuille x
donc
remplacer ta boucle Do Loop  par
for v = 4 To sheets(x).Range("A65536").End(xlUp).Row +1
    if Cells(v,1).value = Liste_module.Value then exit for
next v
if v < sheets(x).Range("A65536").End(xlUp).Row +1 Then
exit sub
la derniere ligne c'est pour le cas où il n'a rien trouvé il ne fera pas la suite en quitant la macro

derniere chose:
puisque comme tu le dis il s'agot de VBA pourquoi poqter dans le theme VB.NET
le VBA c'est dans VB6/ Langage dérivé/ VBA
merci la prochaine fois de poster au bon endroit
 

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
16 avril 2009 à 10:54
oups ! pas réveillé ce matin  !!!
a la place de
il s'agot de VBA pourquoi poqter
il faut lire
il s'agit de VBA pourquoi poster

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
cs_Zouzou12345 Messages postés 7 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 20 avril 2009
16 avril 2009 à 13:20
Merci d'avoir répondu si vite pile_poil.
Pour ta première question, je suis sur que c'est exactement la meme chose car j'ai fait un copier coller.
Ta solution marche. C'est génial! Merci
Je suis désolé d'avoir posté mon mess au mauvais endroit. C'est une erreur d'inattention.

Merci beaucoup pour ton aide!
0
Rejoignez-nous