XL 2019 Insérer une formule Excel via VBA avec boucle.

gilboss

XLDnaute Nouveau
Bonjour,
J'aimerai insérer une formule Excel via un code VBA sur 31 colonnes avec changement de lettre par formule.
Cette formule est à écrire dans les cellules C30 à AG30 avec l'incrément des lettres C dans la formule (C à AG)
=SOMME_SI_COULEUR(C$31:C$34;16777215) jusqu'à =SOMME_SI_COULEUR(AG$31:AG$34;16777215)

Je n'y parviens pas. (Je suis novice)
Si quelqu'un pouvait m'aider, je le remercie d'avance
Je pourrais écrire la formule directement dans les cellules, mais ce n'est pas mon souhait.
 

gilboss

XLDnaute Nouveau
Bonsoir le fil

@gilboss
Dans un classeur où tu auras copié les deux fonctions que j'ai postées.
(message#12)
Copie puis éxécute cette macro qui créé un exemple
Code:
Sub Macro_pour_créer_exemple()
Dim t
t = Array(2, 3, 7, 6, vbNullString, vbNullString, 1, 0, vbNullString, 8)
Range("A1").Interior.ColorIndex = 6
Range("B3:B10").Value = Application.Transpose(t)
Range("B3:B10").FormatConditions.Add Type:=xlExpression, Formula1:="=ET(EST.PAIR($B3);$B3>0)"
Range("B3:B10").FormatConditions(Range("B3:B10").FormatConditions.Count).SetFirstPriority
Range("B3:B10").FormatConditions(1).Interior.ColorIndex = 6
Range("B12").Formula = "=SOMMECOULEURS(B3:B10,A1)"
Range("B12").Font.Bold = -1
End Sub
La somme en B12 est correcte, non ?

Pour continuer le test, change manuellement quelles valeurs
(en mettant deux, trois ou quatre chiffres pairs)
Tu verrais que la somme s'actualisera et sera bonne.
Tout c'est bien remplie, mais désolé, en B12 j'ai #valeurs
J'ai mis la fontion dans Module1, la nouvelle macro dans module2 et private fonction dans le code VBA de la feuille. Si je change des valeurs impair en pair, effectivement la couleur devient jaune.
 

Staple1600

XLDnaute Barbatruc
Re

Et pourtant elle tourne ;)
ExempleOK.png
 

Staple1600

XLDnaute Barbatruc
Re

Essaies avec cette macro
VB:
Sub Macro_pour_créer_exemple_BIS()
Dim t, r As Range: Set r = Range("B3:B10")
t = Array(2, 3, 7, 6, 0, 1, 0, 5)
Range("A1").Interior.ColorIndex = 6
r.Value = Application.Transpose(t)
r.FormatConditions.Add Type:=xlExpression, Formula1:="=ET(EST.PAIR($B3);$B3>0)"
r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
r.FormatConditions(1).Interior.ColorIndex = 6
Range("B12").Formula = "=SOMMECOULEURS(B3:B10,A1)"
Range("B12").Font.Bold = -1
End Sub
 

gilboss

XLDnaute Nouveau
Re

Essaies avec cette macro
VB:
Sub Macro_pour_créer_exemple_BIS()
Dim t, r As Range: Set r = Range("B3:B10")
t = Array(2, 3, 7, 6, 0, 1, 0, 5)
Range("A1").Interior.ColorIndex = 6
r.Value = Application.Transpose(t)
r.FormatConditions.Add Type:=xlExpression, Formula1:="=ET(EST.PAIR($B3);$B3>0)"
r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
r.FormatConditions(1).Interior.ColorIndex = 6
Range("B12").Formula = "=SOMMECOULEURS(B3:B10,A1)"
Range("B12").Font.Bold = -1
End Sub
J'ai un 0 qui apparait et aussitot #Valeur!
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette