SOMME.SI dans ActiveCell

  • Initiateur de la discussion Initiateur de la discussion wolrath
  • Date de début Date de début

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 !

W

wolrath

Guest
bonjour,

à l'heure actuelle j'ai une formule :
ActiveCell.Value = "=SOMME(DEPOT!$AJ$3:$AJ$58)"
qui fonctionne...

et je voudrais la faire passer en quelque chose qui ressemblerais à ceci :
ActiveCell.Value = "=SOMME.SI(DEPOT!$AJ$3:$AJ$58;$A3;DEPOT!$AN$3:$AN$58)"
mais ca ne fonctionne pas...

ne peut pas mettre "n'importe quoi " dans une cellule ???
 
Re : SOMME.SI dans ActiveCell

oui ca marche quand je le marque en "direct" sur la feuille, mais là je voudrais que le contenue de la cellule se mette directement à jour via une macro

le but de cette manipulation, à terme, c'est que le nom de la feuille (ici depot) va changer et je voudrais que la formule soit "modulable"
 
Re : SOMME.SI dans ActiveCell

encore moi 🙂

bon, maintenant j'en suis là :

For y = 3 To 100
For x = 1 To 50
nomfeuille = Worksheets(x).Name
Cells(y, 2 + x).Select
'ActiveCell.FormulaLocal = "=SOMME.SI(" & nomfeuille & "!$AJ$3:$AJ$58;$A" & y & ";" & nomfeuille & "!$AN$3:$AN$58)"
ActiveCell.FormulaLocal = "SOMME.SI(" & nomfeuille & "!$AJ$3:$AJ$58;$A" & y & ";" & nomfeuille & "!$AN$3:$AN$58)"
Next
Next

la ligne en commentaire n'est pas accepté par excel, la deuxieme si, mais ne fonctionne pas bien sur... ca fonctionnait juste avant que je rajoute la notion de "nomfeuille"

si quelqu'un à une petite idée je suis preneur

et si (d'avance) une fois que cette moulinette fonctionne, on peut m'indiquer si on peut optimiser le code pour un gain de temps ce serais tiptop 😛 car il y avait un temps de calcul/affiche qui ne deviens plus négligeable

merci par avance
 
Re : SOMME.SI dans ActiveCell

Rebonjour à tous,

Comme on ne connais pas le nom des feuilles, je pense qu'il y en a qui contiennent peut-être des espaces comme "Depot xxx".

A tout hasard, dans ce cas, il faut rajouter une apostrophe ' avant et après le nom de feuille:

L'instruction devient:

Code:
ActiveCell.FormulaLocal = "=SOMME.SI('" & nomfeuille & "'!$AJ$3:$AJ$58;$A" & y & ";'" & nomfeuille & "'!$AN$3:$AN$58)"

A essayer.

Nota: si le nom de feuille ne contient pas d'espace, le ' n'aura pas d'incidence, Excel le supprimera automatiquement dans la formule.

@+

Gael
 
Re : SOMME.SI dans ActiveCell

et bien oui, c'etait un probleme d'espace... 🙁

donc ca marche mais comme enoncé précédement il y a maintenant un petit probleme de rapidité, la moulinette mettant à jour environ 5000 cases...

For y = 3 To 102
For x = 1 To 51
nomfeuille = Worksheets(x).Name
Cells(y, 2 + x).FormulaLocal = "=SOMME.SI('" & nomfeuille & "'!$AJ$3:$AJ$58;$A" & y & ";'" & nomfeuille & "'!$AN$3:$AN$58)"
Next
Next

il y a t il une possibilité d'optimiser ce code ???
 
Re : SOMME.SI dans ActiveCell

Bonsoir wolrath,

Si tu n'as pas d'autre macro, notamment évènementielle tu mets en début de procédure:

Code:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

et en fin de procédure:

Code:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

cela devrait améliorer considérablement le temps de réponse.

@+

Gael
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
515
Retour