Problème d'insertion de formules dans une plage de cellules

Sunfreez

XLDnaute Nouveau
Bonjour,

Tout d'abord je vous remercie de plancher sur mon souci (que je ne comprend absolument pas).

Voici ce que je souhaite réaliser :
Dans un Feuille de calcul (appeler test pour le coup), je souhaite insérer des formules (préalablement mises dans un tableau) dans une plage de cellules.
Pour faire cela, je sélectionne ma plage, puis je créer un tableau temporaire de la taille de la plage. Par la suite j'insère dans ce tableau temporaire mes formule puis je les insères dans ma plage.​


Mon souci :
Au moment d'insérer dans la plage, j'ai une erreur de ce type : Erreur '1004' Erreur définie par l'application ou par l'objet'​



Ce que je ne comprends pas, c'est que j'utilise cette méthode plusieurs fois dans mon projet (et je n'ai jamais eu de souci). Voici mon code :


Code:
Private Sub CREER_REF_PT_FONCTIONNEMENT()

Dim WS_ESSAIS As Worksheet                 '* Feuille où la macro sera lancé
Dim SELECTION_REFERENCES As Range      '* Plage des cellules sélectionnées
Dim REFERENCES() As String                    '* Tableau des formules à insérer
Dim NB_FICHIERS As Integer                    '* Nombre de fichier présent dans le projet
Dim TABL_REFERENCES()                         '* Tableau temporaire

NB_FICHIERS = Module6.NB_FICHIERS       '* Récupération du nombre de fichier (mettre une valeur pour tester
ReDim REFERENCES(NB_FICHIERS, 3)        '* Re dimension du tableau des formules (ex : tab sur 20 lignes et 4 colonne)


'* Création des formules ****************************************************************
For i = 0 To 3
    For j = 0 To NB_FICHIERS
        Select Case i
            Case 0
                REFERENCES(j, i) = "=SI(A" & j + 5 & "<=Réglage!$E$3;I_1;" & Chr(10) _
                    & "=SI(A" & j + 5 & "<=Réglage!$E$3+Réglage!$F$3;I_2;" & Chr(10) _
                    & "=SI(A" & j + 5 & "<=Réglage!$E$3+Réglage!$F$3+Réglage!$G$3;I_3;N)))"
            Case 1
                REFERENCES(j, i) = "=SI(OU(Identité!$B$14=Identité!$B$26;A" & j + 5 & ">Réglage!$R$2);0,MAX(Si(Réglage!$I$2:$R$R2=A" & j + 5 & ";Réglage!$I$3:$R$3)))"
            Case 2
                REFERENCES(j, i) = "=SI(A" & j + 5 & "=1;VNS;$E$26+$D" & j + 5 & ")"
            Case Else
                REFERENCES(j, i) = "=SI(OU(F" & j + 4 & "=VNS;F" & j + 4 & "=$F$27);VNS;" & Chr(10) _
                    & "SI(ET(C" & j + 5 & "<>N;C" & j + 6 & "=N);$F$27;$F$26))"
        End Select
    Next j
Next i
'**********************************************************************************

Set WS_ESSAIS = Sheets("test")
WS_ESSAIS.Activate                   '* Activation de la feuille test

Set SELECTION_REFERENCES = Range("C5:F" & NB_FICHIERS + 4)  '* Selection de C5:F24
TABL_REFERENCES() = SELECTION_REFERENCES.FormulaLocal       '* Re Dimension du tableau temp

'* Recopie des formules dans le tableau *****************************************************
For i = 1 To NB_FICHIERS
    For j = 1 To 4
        TABL_REFERENCES(i, j) = REFERENCES(i - 1, j - 1)
    Next j
Next i
'***********************************************************************************

[COLOR="#FFFF00"]SELECTION_REFERENCES.FormulaLocal = TABL_REFERENCES()[/COLOR]   '* Insertion des formules dans la plage
[COLOR="#FFFF00"]'* Cette ligne pose souci[/COLOR]

Erase REFERENCES()
Erase TABL_REFERENCES()
Set SELECTION_REFERENCES = Nothing

End Sub


Merci pour votre aide ! :)
Cordialement.
 

Misange

XLDnaute Barbatruc
Re : Problème d'insertion de formules dans une plage de cellules

Bonjour
Pourquoi entrer les formules par macro ? C'est la méthode la moins efficace avec excel : il est préférable de choisir entre
1 ) entrer les formules dans la feuille, dans un tableau au sens excel du terme (onglet accueil/style/mettre sous forme de tableau) ce qui permet que la formule se recopie automatiquement quand on ajoute une ligne au tableau (manuellement ou patr macro)
voit ici pour plus d'infos : Ce lien n'existe plus
ou
2) effectuer l'opération en VBA et n'injecter que le résultat dans la feuille ce qui l'allège.
 

Sunfreez

XLDnaute Nouveau
Re : Problème d'insertion de formules dans une plage de cellules

Bonjour Misange !

J'ai réussi à faire ce que je souhaitais en utilisant la 2ème méthode (avec la fonction Evaluate). Je n'avais pas bien compris comment cette fonction marchait, mais ta réponse m'a donné un petit déclic (et je te remercie).

Sinon :

1 ) entrer les formules dans la feuille, dans un tableau au sens excel du terme (onglet accueil/style/mettre sous forme de tableau) ce qui permet que la formule se recopie automatiquement quand on ajoute une ligne au tableau (manuellement ou patr macro)

Je ne peux pas réaliser cela, car mon projet est d'automatiser et de créer des feuilles à partir de macros. J'ai tout un ensemble de feuilles à créer automatiquement pour plusieurs fichiers différents (donc je ne pense pas que cette méthode fonctionnerait).

Merci en tout cas pour ta réponse !
 

Discussions similaires

Réponses
22
Affichages
764

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87