VBA - erreur fonction

Hello la compagnie

J'ai un code vba pour mettre à jour une liste de prix dans le fichier de travail depuis un fichier source:

Private Sub CommandButton1_Click()
    Dim SourceSheet As Object
    Dim SourceRefCol As Long
    Dim SourcePriceCol As Long

    Set SourceSheet = wbSource.Sheets(lbxSheets.Text) 'sourcesheet objet feuille sélectionné
    SourceRefCol = col(SourceSheet, lbxHeaderRef.Text) 'numéro de colonne correspondant au header
    SourcePriceCol = col(SourceSheet, lbxHeaderPrice.Text) 'numéro de colonne correspondant au header

    With SourceSheet
        dl = .Cells(Rows.Count, SourceRefCol).End(xlUp).Row
        Set plgref = .Cells(1, SourceRefCol).Resize(dl, 1) 'plage des references
        Set plgprice = .Cells(1, SourcePriceCol).Resize(dl, 1) 'plage des prix
        Set wst = ThisWorkbook.Sheets("source")
        dl = wst.Cells(Rows.Count, 4).End(xlUp).Row
        With wst.Range("S9:S" & dl) 'mise à jour des prix
            .Formula = "=index(" & plgprice.Address(, , , True) & ",match(""MG"" &D9," & plgref.Address(, , , True) & ",0))"
            .Calculate
            .Value = .Value
        End With
    End With
    wbSource.Close False 'on ferme la source
End Sub

Sauf que cela ne fonctionne pas/plus....

mon problème semble provenir de la ligne .Value = .Value

Une idée de la coquille?

Bonjour Kevlille

Quand le bug est présent, il faut cliquer sur débogage
et regarder les différentes valeurs des variables en mettant le curseur de la souris dessus

Sinon comme ça, c'est compliqué à déterminer

A+

Ben en fait ce n'est pas un bug a proprement parlé... disons que le fichier de destination se rempli bien mais avec un #NA dans chaque case...

Du coup difficile de comprendre d'où vient le problème

Re,

Si le fichier ce rempli de #N/A c'est que la formule ne trouve pas la valeur correspondante

Sans les fichiers je ne pourrais pas vous aider d'avantage

Cordialement

bonsoir,

vous avez quoi comme résultat pour s ?

    With wst.Range("S9:S" & dl)     'mise à jour des prix
          s = "=index( '[" & wbsource.Name & "]" & sourcesheet.Name & "'" & plgprice.Address & ",match(""MG"" &D9, & ""'["" & wbsource.Name & ""]"" & sourcesheet.Name & ""'"" &  plgref.Address & "",0))"
          MsgBox s
          .Formula = s

Désolé pour la réponse tardive.

Le code fonctionne parfaitement... si la feuille n'est pas verrouillée ;-)

Rechercher des sujets similaires à "vba erreur fonction"