Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 09h34   #1
Invité de passage
 
Inscription : avril 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 25
Points : 4
Points : 4
Par défaut somme conditionnelle sous VBA

Bonjour,

Quelqu'un sait-il comment sommer l'ensemble des valeurs contenues dans les cellules d'une colonne X, à la condition que ces cellules soient de couleurs rouge par exemple?
D'avance merci.

Voici un début de tentative:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub TotalValeurDevis()
Dim i, j, k As Integer
 
'je commence à partir de A7, volontairement
i = Range("A7").End(xlDown).Value
 
 
k = SumIf(Range("G7:G" & i), Interior.Color = 3, Range("G7:G" & i))
'la msgbox m'indique k = 0...
MsgBox k   
...
 
End Sub
léclaireur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 09h50   #2
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
déja tu as oublié de mettre les balises code, ça serait plus lisible

Citation:
Envoyé par léclaireur
Bonjour,

Quelqu'un sait-il comment sommer l'ensemble des valeurs contenues dans les cellules d'une colonne X, à la condition que ces cellules soient de couleurs rouge par exemple?
D'avance merci.

Voici un début de tentative:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub TotalValeurDevis()
Dim i, j, k As Integer
 
'je commence à partir de A7, volontairement
i = Range("A7").End(xlDown).Value
 
 
k = SumIf(Range("G7:G" & i), Interior.Color = 3, Range("G7:G" & i))
'la msgbox m'indique k = 0...
MsgBox k   
...
 
End Sub
Si tu veux mettre une ofrmule, tu n'as aucune chance d'y arrive, il faut faire la somme par macro, tu y arrivera mieux, un truc de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub TotalValeurDevis()
Dim i, k As long
k = 0
'je commence à partir de A7, volontairement
for i = 1 to Range("A7").End(xlDown).row
    if cells(i,7).interior.colorindex = 3 then
             k = k + cells(i,7).value
   end if
next i
msgboxk
 
End Sub
Tu dis, je l'ai écrit à la va-vite, sans vraiment tester
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 10h02   #3
Invité de passage
 
Inscription : avril 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 25
Points : 4
Points : 4
Par défaut somme conditionnelle sous vba

Re,

La MsgBox, m'indique toujours k =0.

Pourquoi dis-tu qu'en mettant une formule, cela ne marchera pas; je ne vois pas pourquoi.
léclaireur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 10h07   #4
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
Je viens de tester ma fonction, ça marche très bien chez moi

Il faut peut etre que tu modifie certains paramètres pour que ça prenne en compte les cellules que tu veux addtionner

Pour la formule, je crois qu'il est pas possible, avec une formule, de mettre une condition sur une cellule colorée ou non, mais j'en suis pas sur
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 10h29   #5
Invité de passage
 
Inscription : avril 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 25
Points : 4
Points : 4
Par défaut somme conditionnelle sous vba

Si si t'as raison, ça marche
j'ai trouvé mon étourderie,
Si ttes les cellules sont en blancs, c'est un peu normal qu'il m'affiche 0...
léclaireur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 10h32   #6
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
Effectivement

oublie pas le ptit tag Résolu
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h00.


 
 
 
 
Partenaires

Hébergement Web