Comment delimiter une boucle a une partie de fichier

jonew - 9 déc. 2013 à 11:48
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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

3 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 9/12/2013 à 12:58
Bonjour

c'est du vba et non du vb.net
fais attention la prochaine fois de poster dans la bonne rubrique

' 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

tu testes mais tu ne fais rien avec
0
il n'y a pas de texte dans votre commentaire. Est ce normal ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 9/12/2013 à 13:06
si j'avais cliqué sur valider avant d'écrire
0
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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).
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2013 à 16:39
C'est le genre d'application qui serait extrêmement simplifiée par l'utilisation toute bête de plages nommées.
0
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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.
0
J'arrête la discussion à ce niveau-là !
Ton amabilité et ton intelligence me dépasse trop. Merci qu'en même.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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.
0
Rejoignez-nous