Comment delimiter une boucle a une partie de fichier
jonew
-
9 déc. 2013 à 11:48
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
9 déc. 2013 à 19:09
Bonjour,
J'ai un fichier Excel contenant les résultats d'une enquête d'évaluation avec 4 colonnes. Cette évaluation est donnée en termes de « content » et de « timing » pour les mêmes titres de sessions.
Chaque section a en colonne A l'intitule du theme suivi des titres.
Titres des sessions // note d'évaluation //Nb vote //Calcul évaluation
In term of content titre 1 // 5 : very good // 3 // =(3*5)+(2*4)+(4*3)
titre 1 // 4 : good // 2 //
titre 1 // 3 : fair // 4 //
Titre 2 .... idem ......
In term of timing titre 1 // 5 : very good // 2 // =(2*5)+(1*4)+(6*3)
titre 1 // 4 : good // 1
titre 1 // 3 : fair // 6
Titre 2...... idem .......
L'objectif est de calculer la valeur totale de l'évaluation pour chaque Titre de Session - valeur donnee dans colonne "Calcul evaluation" en 1ere ligne du titre.
Mon problème est de faire une boucle qui passe en revue tous les titres pour la première partie « content » et refait ensuite le même traitement pour la 2eme partie « timing ».
Voici mon script... mais celui si ne sait pas s'arrêter quand il trouve la deuxième partie et donc il cumule les sommes puisqu'il retrouve titre 1 ...
Sub Proc55_concate_answer_note() Dim ws1 As Worksheet, i1, k, m Set ws1 = Worksheets("export-w1") '~~> Get last row in Col A in Sheet2 i1 = ws1.Range("A" & Rows.Count).End(xlUp).Row With ws1 For k = 3 To i1 note = .Range("F" & k) s_t = .Range("A" & k) 's_t contiemt le Session Title de la ligne k ' je teste si la colonne A contient "Session (Start Time/ End time)" ou "In term of timing" If s_t = "" Or s_t = "Session (Start Time/ End time)" Or s_t = "In term of timing" Then Else For m = k + 1 To i1 s_t_next = .Range("A" & m) 'je stocke le session Title suivant If s_t = s_t_next Then ws1.Range("F" & k).Value = "=" & ws1.Range("F" & k).Value & "+" & ws1.Range("F" & m).Value ws1.Range("G" & m).Value = "To delete" End If Next m End If Next k End With End Sub
A voir également:
Comment delimiter une boucle a une partie de fichier
En effet ... mais je ne vois pas comment arreter ma boucle a l'apparition en colonne A de "In term of timing" pour ensuite redemarrer le meme code pour traiter la 2eme section du fichier.... et ainsi de suite si il y a plusieurs sections.
Peux tu me donner la maniere de faire?
Merci et excuses moi pour la mauvaise rubrique choisie.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 9 déc. 2013 à 16:31
Bonjour,
Je commence par déplacer la présente discussion qui n'a rien à faire dans la section VB.Net, puisque tu développes sous VBA !
Prends-en s''il te plait bonne note pour l'ouverture de prochaines discussions VBA (c'est important).
OK, mais pour quelqu'un qui n'a pas de connaissance approndi en VBA et programation ca veut dire quoi.
Peux tu etre un peu plus explicite.
Merci par avance.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 9 déc. 2013 à 18:22
"OK, mais pour quelqu'un qui n'a pas de connaissance approndi en VBA et programation ca veut dire quoi".
Euh ... "approfondies" est là inadapté ! Il s'agit de connaissances élémentaires, tant en Excel que en VBA !
Et pour savoir ce quer cela veut dire, quand on le les a pas, ces connaissances, on se précipite sur son aide VBA, on y frappe "plages nommées" et on lit.
J'arrête la discussion à ce niveau-là !
Ton amabilité et ton intelligence me dépasse trop. Merci qu'en même.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 9/12/2013 à 19:18
Désolé pour toi, que tu le prennes ainsi, mais je ne saurais te dire mieux ce que cela "veut dire" que ne le fait parfaitement ton aide VBA.
Tu ne veux tout de même pas que je te réponde en en faisant un copier/coller, hein ...
Pour résumer : tu n'es pas sur un forum de cours, mais sur un forum d'aide. L'aide y est apportée sur la base apprise, si besoin est. Elle n'est pas l'exposé de cette base, exposé que tu as dans ton aide en ligne, sur ta machine.
9 déc. 2013 à 12:56
Modifié par cs_ShayW le 9/12/2013 à 13:06
9 déc. 2013 à 13:19
Peux tu me donner la maniere de faire?
Merci et excuses moi pour la mauvaise rubrique choisie.