Somme d'une colonne jusqu'a cellule test
Fermé
RussellD
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
-
15 avril 2010 à 17:43
dct33 Messages postés 41 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2010 - 16 avril 2010 à 19:13
dct33 Messages postés 41 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2010 - 16 avril 2010 à 19:13
A voir également:
- Somme d'une colonne jusqu'a cellule test
- Test pc - Guide
- Déplacer une colonne excel - Guide
- Somme si couleur - Guide
- Excel somme colonne - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
dct33
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
39
15 avril 2010 à 19:25
15 avril 2010 à 19:25
Bonsoir,
' pour faire cela il faut définir un gris car une couleur une valeur
' pour connaitre la valeur en fonction de la couleur faire une macro et aller la lire
'et récupérer la valeur pour moi c'était 15
'dans l'exemple j'ai mis les valeurs colonne1 à partir de la ligne 2 et je fais le total 'ligne 1
Sub calcul()
X = 2
Total = 0
While Cells(X, 1).Interior.ColorIndex <> 15
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(1, 1) = Total
end sub
'si par contre s'il faut trouver la première cellule colorée
Sub calcul()
X = 2
Total = 0
While Cells(X, 1).Interior.ColorIndex = XlNone
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(1, 1) = Total
end sub
'Bonne programmation
' pour faire cela il faut définir un gris car une couleur une valeur
' pour connaitre la valeur en fonction de la couleur faire une macro et aller la lire
'et récupérer la valeur pour moi c'était 15
'dans l'exemple j'ai mis les valeurs colonne1 à partir de la ligne 2 et je fais le total 'ligne 1
Sub calcul()
X = 2
Total = 0
While Cells(X, 1).Interior.ColorIndex <> 15
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(1, 1) = Total
end sub
'si par contre s'il faut trouver la première cellule colorée
Sub calcul()
X = 2
Total = 0
While Cells(X, 1).Interior.ColorIndex = XlNone
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(1, 1) = Total
end sub
'Bonne programmation
RussellD
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
7
16 avril 2010 à 09:32
16 avril 2010 à 09:32
Merci dct33, cela fonctionne tres bien.
J'ai une autre question ; dans ton cas, la macro est faite en sachant que la cellule "Total" sera en A1. Mais imaginons que l'on ne sache pas à l'avance la ligne de cette cellule (la colonne si par contre).
Comment peut-on modifier ta macro pour la rendre utilisable pour n'importequelle cellule de la colonne 1.
J'ai essayer d'utiliser une formulation RC, avec quelquechose comme R[-i]C en implémentant sur i, mais je n'ai pas réussi à faire fonctionner ça correctement...
Cordialement
J'ai une autre question ; dans ton cas, la macro est faite en sachant que la cellule "Total" sera en A1. Mais imaginons que l'on ne sache pas à l'avance la ligne de cette cellule (la colonne si par contre).
Comment peut-on modifier ta macro pour la rendre utilisable pour n'importequelle cellule de la colonne 1.
J'ai essayer d'utiliser une formulation RC, avec quelquechose comme R[-i]C en implémentant sur i, mais je n'ai pas réussi à faire fonctionner ça correctement...
Cordialement
dct33
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
39
Modifié par dct33 le 18/04/2010 à 10:26
Modifié par dct33 le 18/04/2010 à 10:26
Bonjour,
Si tu connais la colonne mais pas la ligne où se trouve ta première donnée alors
tu fais un while à partir de la ligne 1 et tu descends tes lignes tant que tu as des cellules vides
Sub calcul()
Colonne = 1
X = 1
While UCase(cells(X, Colonne)) <> ""
X = X + 1
wend
PosTotal = X - 1
Total = 0
While Cells(X, 1).Interior.ColorIndex = XlNone
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(PosTotal , Colonne ) = Total
end sub
La boucle while est exécutée tant que la condition est remplie
dans l'exemple je me balade de ligne en ligne en recherchant soit un mot soit une couleur
Attention quand on fait une while il faut être sur que la condition soit remplie un jour
si non plantage
dans l'exemple si je n'incrémente pas X dans mes boucles la condition est toujours vrai donc on ne peut pas sortir de la boucle
Bonne programmation
Si tu connais la colonne mais pas la ligne où se trouve ta première donnée alors
tu fais un while à partir de la ligne 1 et tu descends tes lignes tant que tu as des cellules vides
Sub calcul()
Colonne = 1
X = 1
While UCase(cells(X, Colonne)) <> ""
X = X + 1
wend
PosTotal = X - 1
Total = 0
While Cells(X, 1).Interior.ColorIndex = XlNone
Total = Total + Cells(X, 1)
X = X + 1
Wend
Cells(PosTotal , Colonne ) = Total
end sub
La boucle while est exécutée tant que la condition est remplie
dans l'exemple je me balade de ligne en ligne en recherchant soit un mot soit une couleur
Attention quand on fait une while il faut être sur que la condition soit remplie un jour
si non plantage
dans l'exemple si je n'incrémente pas X dans mes boucles la condition est toujours vrai donc on ne peut pas sortir de la boucle
Bonne programmation