Sommes avec des variables

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
 
L

Le_Marco

Guest
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 !
 
L

Le_Marco

Guest
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:Dref_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 !
 
A

Arnaud

Guest
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 & ")"
 

Discussions similaires

Statistiques des forums

Discussions
314 203
Messages
2 107 178
Membres
109 773
dernier inscrit
sablin