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 :
Mon souci :
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 :
Merci pour votre aide !
Cordialement.
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.
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.