Problème VBA

Résolu
funbreizhou Messages postés 89 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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 11033 Statut Membre 2 433
 
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 89 Statut Membre 11
 
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 11033 Statut Membre 2 433
 
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