Insertion d'une formule dans une cellule par une macro VBA

Bonjour à tous,

J'ai une macro qui insère une formule VLOOKUP avec des arguments fixes et variables. Voici le code pour une meilleure compréhension.

Sub VLOOKUPAuto()

Application.ScreenUpdating = False

' compte le nombre de lignes
Dim nbLignes As Integer
nbLignes = Application.WorksheetFunction.CountA(Range("A9:A65536"))

' boucles qui remplissent le tableau
For i = 9 To nbLignes
    For j = 15 To 29
        If CStr(Cells(i, j).Value) = "" Or CStr(Cells(i, j).Value) = "0" Then
            Cells(i, j).Select
            ActiveCell.Formula = "=VLOOKUP($A" & i & ";'C:\compilation\[valeurs_test.xls]AO'!$A$9:$AC$9085;" & j & ";FALSE)"
        End If
    Next j
Next i

Application.ScreenUpdating = True

End Sub

Or, la ligne d'insertion me renvoie une erreur 1004. Quand je supprime le "=" du VLOOKUP, il n'y a plus d'erreur mais évidemment la cellule cible contient le texte de la formule et non le résultat. Auriez-vous une solution ?

N'hésitez pas à me demander plus de précisions.

Merci d'avance,

Jérémy

Bonjour,

Tu peux commencer par modifier :

If CStr(Cells(i, j).Value) = "" Or CStr(Cells(i, j).Value) = "0" Then

par

If Cells(i, j) = "" Or Cells(i, j) = 0 Then

Cdlt.

A te lire

Bonjour

Au lieu de

ActiveCell.Formula

Essaie

ActiveCell.FormulaR1C1

Cordialement

@Jean-Eric : Oui merci, je prend aussi tout conseil me permettant de simplifier mon code

@Amadeus : Merci, mais j'ai déjà essayé Formula, FormulaR1C1 et Value, j'aurais dû le préciser.

Bonjour

Remplaces tes ; (points-virgules) par des , (virgules)

ActiveCell.Formula = "=VLOOKUP($A" & i & ",'C:\compilation\[valeurs_test.xls]AO'!$A$9:$AC$9085," & j & ",FALSE)"

Bonjour Banzai,

Merci mais j'ai déjà essayé cette méthode et l'erreur renvoyée est la même.

Re,

Peux-tu envoyer ton ou tes fichiers pour exemples

Cdlt.

Bonjour

Tu as 3 points-virgules

J'ai fait ça chez moi, la formule passe hormis le chemin

@Jean-Eric : Voici les fichiers.

28exemple-forum.zip (13.92 Ko)

@Banzai : Oui je sais que j'ai 3 points-virgules, mais c'est ce caractère qui sépare les arguments d'une fonction, non ? La formule passe chez toi avec des virgules ou des points-virgules ?

Bonjour

Fais mois confiance remplaces ta ligne avec tes ; (poins-virgules) par celle que j'ai postée

Ou alors je n'y comprends plus rien

Je regardes ton fichier

@Banzai : Oui ça marche ! . Désolé d'avoir été sceptique, mais je pensais avoir déjà testé cette solution

Merci à tous pour votre temps,

Jérémy

Bonjour

Ton fichier en retour

J'ai adapté le chemin et le nom du fichier à celui que tu as fourni

Rechercher des sujets similaires à "insertion formule macro vba"