Erreur d'exécution 438

Victor -  
vsm47014 Messages postés 1 Statut Membre -
Bonjour,

Je cherche à modifier les cases d'un onglet copié par des formules qui créent des liens vers le classeur source.

Par contre j'ai un erreur 438 qui s'affiche sur la ligne :

Cell3.FormulaR1C1 = "=IF(ISBLANK('[" & Fichier & "]+DFlash'!" & Cell3.Address & "),"""",'[" & Fichier & "]+DFlash'!" & Cell3.Address & ")"

Voici le code de la macro :

Sub CopierOnglets()
'CodeOnglet As String, Fichier As String
Dim CodeOnglet As String
Dim Fichier As String
CodeOnglet = "01A"
Fichier = "80001A.xls"

Dim classeurSource As Workbook, classeurDestination As Workbook

Sheets.Add.Name = CodeOnglet & ".d"
Set classeurSource = Application.Workbooks.Open(ThisWorkbook.Path & "\" & Fichier, , True)
Set classeurDestination = ThisWorkbook
classeurSource.Sheets("+DFlash").Cells.Copy
classeurDestination.Sheets(CodeOnglet & ".d").Paste

classeurDestination.Sheets("DFlash").Activate
Dim Donnees As Range
Set Donnees = Application.InputBox(Prompt:="Sélectionnez la plage de cellules contenant les données numériques", Title:="Sélection des données", Type:=8)

Dim Cell3 As Range
'On remplace chaque cellule du classeurDestination par un lien vers le classeur source pour mise à jour automatique
'Boucle pour parcourir toutes les cellules de la sélection des données
For Each Cell3 In Donnees
'Boucle pour parcourir toutes les cellules de la sélection des onglets
If IsEmpty(Cell3) = False Then
'Création d'un lien vers la même cellule du classeurSource
'"=IF(ISBLANK('[80001A.xls]+DFlash'!R9C4),"""",'[80001A.xls]+DFlash'!R9C4)"
MsgBox ("=IF(ISBLANK('[" & Fichier & "]+DFlash'!" & Cell3.Address & "),"""",'[" & Fichier & "]+DFlash'!" & Cell3.Address & ")")
Cell3.FormulaR1C1 = "=IF(ISBLANK('[" & Fichier & "]+DFlash'!" & Cell3.Address & "),"""",'[" & Fichier & "]+DFlash'!" & Cell3.Address & ")"
End If
Next

End Sub

2 réponses

Victor
 
J'ai oublié de finir mon post....

Merci pour votre aide !
0
vsm47014 Messages postés 1 Statut Membre
 
Bon... finalement j'ai réussit en faisant Evaluate()

Par contre si quelqu'un le voit et qu'il sait pourquoi ça ne marchait pas, je voudrais bien comprendre.

A++
0