Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'écris cette formule dans Excel:
=SI(SOMMEPROD(($B$1:$B1=$B2)*($G$1:$G1=$G2)*($B2<>"")*($C2=""))=0;"Unique";1)
En la transposant en VBA, j'obtiens:
"=IF(SUMPRODUCT((R1C2:R[-1]C2=RC2)*(R1C7:R[-1]C7=RC7)*(RC2<>"""")*(RC3=""""))=0,""Unique"",1)"
Code:
Workbooks(D_StrChiffrierDeBase).Activate
Sheets(1).Select
h = "=IF(SUMPRODUCT((R1C2:R[-1]C2=RC2)*(R1C7:R[-1]C7=RC7)*(RC2<>"""")*(RC3=""""))=0,""Unique"",1)"
Application.ScreenUpdating = False
With Workbooks(D_StrChiffrierDeBase).Sheets(1).UsedRange
.Columns(9).FormulaR1C1 = h 'Insère la formule f dans chaque cellule de la colonne I
End With
Application.ScreenUpdating = True
J'obtiens sur la ligne 1:
=SI(SOMMEPROD(($B$1:$B1048576=$B1)*($G$1:$G1048576=$G1)*($B1<>"")*($C1=""))=0;"Unique";1)
au lieu de
=SI(SOMMEPROD(($B$1:$B1=$B2)*($G$1:$G1=$G2)*($B2<>"")*($C2=""))=0;"Unique";1)
Mon classeur a 8 colonnes et 27000 lignes.
Mes questions:
1. Comment débuter ma formule sur la ligne 2 au lieu de la ligne 1 et donc poser la formule =SI(SOMMEPROD(($B$1:$B1=$B2)*($G$1:$G1=$G2)*($B2<>"")*($C2=""))=0;"Unique";1) sur la ligne 2?
2.Pourquoi mes coodonnées apparaissent incorrectement alors que c'est la même équation?
J'ai trouvé ma réponse.
.Offset(1).Resize(.Rows.Count - 1).Columns(9).FormulaR1C1 = h
Avec cette correction, la première équation est sur la seconde ligne et les formules sont correctes. Mon hypothèse est que pour la ligne 1, effectuer un -1 fait "looper" excel vers la dernière ligne et que c'est cela qui pose problème.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD