cs_motais
Messages postés6Date d'inscriptiondimanche 2 octobre 2011StatutMembreDernière intervention 3 janvier 2012
-
14 déc. 2011 à 08:22
cs_motais
Messages postés6Date d'inscriptiondimanche 2 octobre 2011StatutMembreDernière intervention 3 janvier 2012
-
3 janv. 2012 à 11:22
Bonjour à tous. Je débute en programmation excel et je cherche à faire le programme suivant:
le but du programme est de calculer automatiquement la somme des heures de travail de Paul et de Pierre sur une semaine.
Ils font des matinées ou des aprèsmidi; en sachant qu'une matinée vaut 4 heures et une aprem vaut 6 heures.
Je pensais donc faire une feuille excel appellée semaine 1, avec en premiere ligne les jours de la semaine , la deuxiéme ligne pour les matins et la troisième ligne pour les apresmidi.
Je voudrais que lorsque l'on écrive Pierre dans une case de la ligne matin la variable Pierre s'incrémente de 4 et que lorsque l'on écrive Pierre dans la ligne apresmidi elle s'incrémente de 6, idem pour Paul.
Pourriez vous m'aider SVP.
Merci.....
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 15 déc. 2011 à 14:14
Salut
Qu'as-tu commencé à faire ?
Ligne 1 : Jours de la semaine (sans importance pour le calcul)
Ligne 2 : Matins
Ligne 3 : Après midi
En supposant que :
Ligne 5, colonne 1 : Le nom "Pierre"
Ligne 5, colonne 2 : Total des heures de Pierre
Ligne 6, colonne 1 : Le nom "Paul"
Ligne 6, colonne 2 : Total des heures de Paul
etc
Impératif : Il faudra absolument que seuls les noms des colonnes 1 des lignes 5 et suivants existent dans les lignes du planning. Si le nom de Jacques apparait dans le planning, il ne sera pas comptabilisé.
Il te faut :
# Parcourir les cellules de la ligne 5 et suivantes :
A faire :
- Une boucle qui lira chaque ligne à partir de 5 jusqu'à trouver une ligne vide.
La recherche de cellule vide est un grand classique des questions du forum et peut aussi se trouvé en enregistrant une macro pendant que tu cliques sur la première cellule d'une colonne puis que tu tapes Ctrl-Fin (ou Ctrl-Flèche_bas, je ne sais plus)
Quant à la boucle : voir For-Next
- Dans cette boucle, tu pourra récupérer le nom de la personne en colonne 1 (voir Range) et tu sauras pointer vers la cellule voisine pour y stocker le résultat (Voir Range.Offset)
# Parcourir la ligne 2 à la recherche du nom de la personne pointée par la première boucle.
Là aussi, suffit de faire une boucle For-Next et de travailler avec Range, voire Range.Offset.
A chaque passage de cette seconde boucle, tu pointeras sur une des cellules de la ligne des matins : Suffit de faire un If pour savoir si le nom inscrit correspond à celui recherché et dans ce cas, incrémenter le compteur de 4.
# Parcourir la ligne 3 à la recherche du nom de la personne pointée par la première boucle.
Exactement le même code qu'au dessus, sauf le n° de ligne et la quantité à incrémenter, 6 à la place de 4.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 15 déc. 2011 à 14:27
Bonjour,
je ne suis pas intervenu jusqu'à présent à cause de ce que je souligne ici :
Je voudrais que lorsque l'on écrive Pierre dans une case de la ligne matin la variable Pierre s'incrémente de 4 et que lorsque l'on écrive Pierre dans la ligne apresmidi elle s'incrémente de 6, idem pour Paul.
Que motais veuille bien se demander la raison de ma réaction
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 15 déc. 2011 à 17:44
Re
Il y a aussi une solution beaucoup plus simple :
Tu tapes "compter" dans la zone d'aide située en haut à droite de ta feuille (sur la ligne du menu) et tu auras l'aide pour "compter les occurrences de valeurs ..." qui t’amènera à la fonction NB.SI
Cette fonction renvoie le nombre de fois qu'un texte existe.
Suffira donc de multiplier par le bon chiffre.