Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Range offset value

Profane95

XLDnaute Nouveau
Bonjour à tous

j'ai une macro qui additionne plusieurs formule matricielle via des colonnes tampons
dans la version existante, cela fonctionne car je n'utilise pas de boucle ni d'offset

dans la version futur j'aimerai simplifier le code pour ne pas réécrire celui ci 12 fois (pour 12 mois de l'année)
et donc j'essaie de décaler le résultat d'une colonne à droite, par l'incrémentation de la variable ii (mois)
mais j'ai une incompatibilité de type (erreur 13)
donc ça coince niveau syntaxe mais je n'arrive pas à le mettre en forme

une idée ?

Dim ii As Integer
VB:
 Dim ii As Integer


        For ii = 1 To 12 ' boucle sur les 12 mois de l'année

                    Range("HP25:HP" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM & ii & "_ERP1" & ")" ' ERP1

                    Range("HQ25:HQ" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM & ii & "_ERP2" & ")" ' ERP2

                    Range("HR25:HR" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM & ii & "_ERP3" & ")" ' ERP3

                    Range("HP25:HR" & nbrow).Value = Range("HP25:HR" & nbrow).Value

                    

                            For TT = 25 To nbrow

                            ' on remplit la colonne

                                Range("AT" & TT).Offset(0, ii).Value = Range("HP" & TT).Value + Range("HQ" & TT).Value + Range("HR" & TT).Value ' la ligne fautive

                                Next TT ' jusqu'a la derniere ligne (nbrow)

                            'Range("HP25:HR" & nbrow).ClearContents ' on nettoie les colonnes tampons

                            Next ii ' on change de mois

   End With

   End Sub
 

Profane95

XLDnaute Nouveau
Bonjour
j'avance sur la résolution
alors en mettant les valeurs en "dures" cela fonctionne
Range("HP25:HP" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM1_ERP1" & ")" ' ERP1

QTMM1_ERP1,et QTMM étant des constantes déclarées dans le début du module
Const QTMM As String = "QteTerm" (fonction)
Const QTMM1_ERP1 As String ="LEA_ERP1,Annee_ERP1,Mois_ERP1,Categorie_ERP1,Cat_Usage_ERP1,Quantite_facturee_ERP1,Res_LEA,Res_Annee,Res_Mois_Jan,Res_Categorie_Term,Res_Usage_Man"

j'obtiens en résultat dans mon range la formule matricielle suivante , la tout fonctionne correctement:
{=QteTerm("LEA_ERP1,Annee_ERP1,Mois_ERP1,Categorie_ERP1,Cat_Usage_ERP1,Quantite_facturee_ERP1,Res_LEA,Res_Annee,Res_Mois_Jan,Res_Categorie_Term,Res_Usage_Man")}

mais via la boucle avec la variable ii
Range("HP25:HP" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM & ii & "_ERP1" & ")" ' ERP1
j'obtiens dans mon range la formule matricielle suivante
{=QteTerm(QTMM1_ERP1)}, il ne me donne pas la correspondance
donc je bloque sur la syntaxe

une idée ?
 

Profane95

XLDnaute Nouveau
pas d'idée ?
je synthétise
pourquoi :
Range("HP25:HP" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM1_ERP1" & ")" ' ERP1 ----> donne sur la feuille la formule matricielle
{=QteTerm("LEA_ERP1,Annee_ERP1,Mois_ERP1,Categorie_ERP1,Cat_Usage_ERP1,Quantite_facturee_ERP1,Res_LEA,Res_Annee,Res_Mois_Jan,Res_Categorie_Term,Res_Usage_Man")}

mais quand je code avec une boucle ex : ii =1
Range("HP25:HP" & nbrow).FormulaArray = "=" & QTMM & "(" & QTMM & ii & "_ERP1" & ")" ' ERP1
---> donne sur la feuille la formule matricielle
{=QteTerm(QTMM1_ERP1)}
pourquoi ne résout il pas QTMM1_ERP1 pour faire appel à la constante déclarée plus haut ???
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…