Problème VBA

Résolu/Fermé
funbreizhou Messages postés 76 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 3 novembre 2011 - 25 janv. 2011 à 11:14
ccm81 Messages postés 10544 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 - 26 janv. 2011 à 09:14
Bonjour,

J'ai un petit soucis sur Excel. J'aimerais coder en VBA quelque chose qui ressemblerait à ca :
- Sélectionner une plage définie de cellules (jusque là ça va)
- Dans une autre celllule afficher la somme des valeurs des cellules uniquement colorées en vert, de cette plage.

Merci de votre aide !



3 réponses

ccm81 Messages postés 10544 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 2 336
Modifié par ccm81 le 25/01/2011 à 11:25
bonjour
quelque chose comme ça, le code est ici affecte a un bouton (pas obligatoire) et affichage du resultat en E7

Private Sub CommandButton1_Click()  
Dim s As Long  ' modifier si pas entier  
Dim c As Range  
s = 0  
For Each c In Selection  
  If c.Interior.ColorIndex = 4 Then  ' si c'est le bon vert   
    s = s + c.Value  
  End If  
Next c  
Range("E7").Value = s  
End Sub 


bonne suite
0
funbreizhou Messages postés 76 Date d'inscription samedi 10 octobre 2009 Statut Membre Dernière intervention 3 novembre 2011 11
25 janv. 2011 à 11:43
Yes, ça marche nikel ! je te remercie.

Par contre pour en comprendre le raisonnement :

Dim s As Long ' modifier si pas entier
Dim c As Range

Je ne comprends pas le principie, en quoi consiste ces deux lignes ?

Mercie encore.

Thibault
0
ccm81 Messages postés 10544 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 2 336
Modifié par ccm81 le 26/01/2011 à 10:44
re
dim permet de declarer les variables utilisées dans la procedure
cette declaration, bien que non obligatoire en VBA est TRES fortement recommandée.
Pour eviter d'oublier de declarer les variables, on met dans l'en tete du module la declaration : option explicit.
Avec cette declaration, si tu oublies de declarer une variable, le compilateur t'affichera un message d'erreur . Cette declaration pemret entre autres de detecter les fautes de frappe (pour un nom de variable) et les erreurs qui en decoulent
dim s as long , declare la variable s comme un entier long (de -2 147 483 648 à 2 147 483 647) , si tes valeurs etaient decimales (3.14 par exemple), il aurait fallu declarer s comme single ou bien double
dim c as range, declare la variable c comme une cellule (ou une plage)
bonne suite
0