cs_Zouzou12345
Messages postés7Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention20 avril 2009
-
16 avril 2009 à 10:21
cs_Zouzou12345
Messages postés7Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention20 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
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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
cs_Zouzou12345
Messages postés7Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention20 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.