Calcul sous excel

cs_motais Messages postés 6 Date d'inscription dimanche 2 octobre 2011 Statut Membre Dernière intervention 3 janvier 2012 - 14 déc. 2011 à 08:22
cs_motais Messages postés 6 Date d'inscription dimanche 2 octobre 2011 Statut Membre Derniè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.....

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
Rejoignez-nous