Valeur precedente si erreur #NA

Bonjour,

Pouvez vous m'aider a résoudre mon problème?

J'ai deux feuilles. Une reçoit certaine valeurs de l'autre en cliquant sur un bouton.

Je voudrais avoir la valeur que j'avais avant de cliquer si seulement j'ai #NA.

Par exemple dans ma feuille 2 j'ai une colonne avec le nom des monnaies et sa cote sur la même ligne dans une autre colonne. Après click sur le bouton les cotes sont mise a jour dans le tableau 1 si j'ai le même nom de monnaie que dans le tableau 2 (avec application.vlookup)

Jusque là tous fonctionne sauf que si le nom de la monnaie n'est pas dans la feuille 2 j'ai #NA alors que je voudrais garder la cote qui était présente avant.

Voici mon programme:

Sub bouton1_clic()

Dim nbligne

Sheets ("tableau") . Select

Nblig=cells.specialcells(xlcelltypelastcell).row

For i =6 to nblig

Cells(i,17).formula=application.vlookup(sheets("tableau").range("A" & i),sheets ("extraction").range("A1:J" & nblig),10,false)

Next i

Msgbox "données initialisées"

End sub

Merci par avance.

Cdt

Bonjour,

Sub bouton1_clic()
Dim nbligne As Long
Dim Resultat As Variant
    With Sheets("tableau")
        nblig = .Cells.SpecialCells(xlCellTypeLastCell).Row
        For i = 6 To nblig
            Resultat = Application.VLookup(.Range("A" & i), Sheets("extraction").Range("A1:J" & nblig), 10, False)
            If Not Application.IsNA(Resultat) Then .Cells(i, 17) = Resultat
        Next i
    End With
    MsgBox "données initialisées"
End Sub

A+

Merci.

Avec ce code je n'ai que le msgbox qui apparaît mais il ne se passe rien au niveau de mon tableau 1 ("Tableau")...

Cdt.

Sans fichier je ne peux pas en dire plus.

A+

Voila un fichier de même type,

Feuille 3 un bouton avec votre code.

Feuille 4 un bouton avec mon ancien code.

Avec l'ancien les cotes sont modifiées mais on a l'erreur #NA si la monnaie n'apparaît pas dans la feuille "extraction".

Cordialement.


Dsl ce n'est pas votre code feuille 3 mais un test.

Cdt

7classeur1.xlsm (22.04 Ko)

Ton fichier en retour

A+

13classeur1.xlsm (20.47 Ko)

Super merci beaucoup.

Par contre je rencontre un problème si la feuille "extraction" contient plus de valeur que la feuille "Tableau".

Les valeurs supérieur a la feuille "tableau" ne sont pas prise en compte.

Par exemple si j'ai 20 valeurs dans "extraction" et 19 dans "tableau" la 20eme n'est pas prise en compte dans "tableau" même si le nom de "monnaie" est le même.


Comment faire pour avoir toujours nblig avec la plus haute valeur des deux feuilles?

Du genre if nblig1>nblig2 then nblig=nblig1 sinon nblig=nblig2.

Cela permettrait de régler mon problème.

Cdt

Essaie comme cela :

Sub bouton1_clic()
Dim WsC As Worksheet, WsS As Worksheet
Dim NbLigneC As Long, NbLigneS As Long, i As Long
Dim Resultat As Variant
    Set WsC = Worksheets("tableau")
    Set WsS = Worksheets("extraction")
    NbLigneC = WsC.Range("A" & Rows.Count).End(xlUp).Row
    NbLigneS = WsS.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To NbLigneC
        Resultat = Application.VLookup(WsC.Range("A" & i), WsS.Range("A2:J" & NbLigneS), 10, False)
        If Not Application.IsNA(Resultat) Then WsC.Cells(i, 2) = Resultat
    Next i
    MsgBox "données initialisées"
    Set WsC = Nothing: Set WsS = Nothing
End Sub

A+

Rechercher des sujets similaires à "valeur precedente erreur"