Sommes avec des variables

  • Initiateur de la discussion Initiateur de la discussion Le_Marco
  • 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 !

L

Le_Marco

Guest
Bonjour,

j'essaie de faire des sommes avec des cellules dont une des coordonnées est définie par des variables.

Le tout se lance comme il faut mais la valeur que j'ai en retour est : #NOM?

ref_base --> numero de ligne de la cellule de base (integer)
ref_fin -----> numero de ligne de la cellule de fin (integer)

La formule que j'ai employée est celle-ci :

=SOMME(cells(ref_base; 4):cells(ref_fin; 4))


Ma question est surtout, comment ne pas tomber sur cette erreur et que la somme apparaisse bien !



PS : la question est peut-être un peu "bateau" mais là, je bloque (je viens de me remettre donc je ne suis pas au top) ;-D
 
Je les renseigne après une boucle pour determiner les "lignes" a selectionner.
ref_base --> a une valeur definie en début de (la boucle de la) macro
ref_fin ----> a une valeur définie après une (autre) boucle qui définit une selection de lignes contenant le meme code

Pour l'affectation des formules : en effet, elles sont bien affectées par macro !



Précision : je n'ai aucune référence fixe (cellule de base ou autre) car tout se calcule selon des variables !
 
Donc voici le code :


'ref_base = ligne de référence de sélection de début
'ref_fin = ligne de référence de sélection de fin
'val_spm = mémoire de la valeur de la colonne Code SPM
'i = compteur de ligne

Dim ref_base, ref_fin, val_spm, i As Integer


ref_base = 2
i = 2


Do While ActiveSheet.Cells(ref_base, 1) <> "" And ActiveSheet.Cells(ref_base + 1, 1) <> ""

Do While ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i + 1, 1).Value
i = i + 1
Loop


ref_fin = i

val_spm = ActiveSheet.Cells(i, 1).Value

ActiveSheet.Cells(ref_fin + 1, 1).Select
Selection.EntireRow.Insert


Range(Cells(ref_base, 1), Cells(ref_fin, 1)).Select
Selection.ClearContents


ActiveSheet.Cells(ref_fin + 1, 1).Value = val_spm


'--Mettre le total
'Sélection des cellules de la colonne D (Dref_base😀ref_fin)
'Total dans la cellule D(ref_fin+1,4)
ActiveSheet.Cells(ref_fin + 1, 4).Select
-------------------------------------------------------------------
ActiveCell.FormulaR1C1 = "=sum(Cells(ref_base, 4):Cells(ref_fin, 4))"

-------------------------------------------------------------------
------------> c'est donc à ce moment qu'il m'est retourné la valeur #NOM? au lieu du résultat


ref_base = ref_fin + 2
i = ref_fin + 2

Loop


Donc, voili, voilou quoi !
 
re,

Dim adr1 As Variant
Dim adr2 As Variant


adr1 = Cells(ref_base, 4).AddressLocal(RowAbsolute:=False, ColumnAbsolute:=False)
adr2 = Cells(ref_fin, 4).AddressLocal(RowAbsolute:=False, ColumnAbsolute:=False)

ActiveCell.Formula = "=SUM(" & adr1 & "," & adr2 & ")"
 
- 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
374
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour