Remplacer la valeur la plus proche par le nombre de référence

Bonjours à vous cher communauté !

Mon sujet est simple, je trouve des idées, mais pas ce que je souhaite concrètement entre RecherheV, application.Match, Vlookup

Feuille Valeurs GEO = Colonne PK (G) valeurs de référence

Feuille EMCAT GEO = Dans l'encadré rouge dans la colonne B plage de sélection (B15 : B2346)

Je souhaite remplacer les valeurs les plus proches des valeurs de références par ces dernières.

Si possible j'aimerai pouvoir utiliser ce code dans d'autres feuilles.

En vous remerciant pour votre réponse

Cordialement.

15test-1.xlsm (109.18 Ko)

Bonjour,

tu peux utiliser la recherchev().

Mais il faut trier la colonne G (PK) de la feuil Valeurs par PK du plus petit au plus grand .

Et utiliser recherchev sans chercher la correspondance exacte.

@+

Bonjour fg2b,

La fonction recherchev est bien connue mais je souhaiterai remplacer par les valeurs de référence dans la même colonne B Feuille EMCAT GEO. Le remplacement s'effectue sur une seule cellule.

Un Code VBA serait peut être préférable ?

Cordialement

Bonjour,

La fonction est un peu complexe, VBA serait peut être plus simple

11test-2.xlsm (148.22 Ko)

Bonjour à tous,

Comme j'ai un petit peut travaillé dessus, un test :

Sub GEO()
Dim L%, PLAGE As Variant, REF As Variant
With ActiveSheet
PLAGE = .Range("B15:B" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    For L = 1 To UBound(PLAGE)
        PLAGE(L, 1) = Evaluate("=VLOOKUP(" & PLAGE(L, 1) & ",'Valeurs Géo et Hauteur'!$G$2:$G$15 ,1, TRUE)")
    Next L
    .Range("B15:B" & .Cells(.Rows.Count, 1).End(xlUp).Row) = PLAGE
End With

Cdlt,

En vba , le code de la recherche sans correspondance exacte.

Cdlt

8test-1-vba.xlsm (210.19 Ko)

Bonjour a tous merci pour vos réponses !

Apres avoir essayé vos codes j'ai constaté que le PK de référence était remplacé sur plusieurs lignes du tableau et ce n'est pas ce que je souhaite.

Je souhaite juste la remplacer sur une seule cellule comme montré en photo pour le premier PK de référence (G2).

-> La valeur de l'encadré noir est la plus proche de l'encadré rouge alors la valeur de l'encadré rouge devient la valeur de l'encadré noir.

fusion

Dans le 2 eme cas, Le PK de référence (G3) a une valeur identique donc l'opération est "déjà faite".

fusion 2

Répéter l'opération autant de fois qu'il y a de PK de référence dans la feuille "Valeurs Géo Hauteur".

Plus tard je serai amené à rajouter des PK de référence dans la feuille "Valeurs Géo et Hauteur" qui ne seront pas identiques à celles dans la feuille "Trame EMCAT GEO" c'est pour ça que je tente de faire ce code.

En vous remerciant pour vos réponses.

Cordialement :)

Bonjour,

Un second test comme j'ai, semble-t-il pris le problème à l'envers. Par contre je le répète comme d'autre mais il faut que vos valeurs à retourner soient classées par ordre croissant sur la feuille Tram EMCAT GEO en effet vous dites que c'est 25680718 qui est plus proche de 25680700, personnellement je trouve que c'est 25680690. Si vous ne triez pas vos valeurs vous ne trouverez pas les bons résultats. Un code à activer depuis la feuille d'intérêt :

Sub GEO()
Dim L%, PLAGE As Variant, REF As Variant
With ActiveSheet
PLAGE = .Range("G2:G" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    For L = 1 To UBound(PLAGE)
        PLAGE(L, 1) = Evaluate("=VLOOKUP(" & PLAGE(L, 1) & ",'Trame EMCAT GEO'!$B$15:$B$" & Worksheets("Trame EMCAT GEO").Cells(Worksheets("Trame EMCAT GEO").Rows.Count, 1).End(xlUp).Row & " ,1, TRUE)")
    Next L
    .Range("G2:G" & .Cells(.Rows.Count, 1).End(xlUp).Row) = PLAGE
End With
End Sub

Cdlt,

Bonjour ,

Veuillez m'excusez pour ma réponse tardive.

Je suis navré de constater que les 3 dernières valeurs en fin de colonne ne sont pas cohérentes. Le PK est en effet croissant. Voici le nouveau fichier avec les lignes supprimées.

Merci pour votre réponse Ergotamine,

- > Mon but est de remplacer les valeurs PK, feuille ("Trame EMCAT GEO") les plus proche des valeurs PK de référence ("Valeurs Géo et Hauteur") par ces derniers.

Apres avoir essayé votre code le résultat obtenu est presque bon mais il effectue l'inverse.

- > Les valeurs de PK de référence sont remplacées par les valeurs PK les plus proche des PK de référence de la feuille ("Trame EMCAT GEO")

J'espère que vous me suivez

En vous remerciant

Cordialement.

6test-2.xlsm (109.20 Ko)

Bonjour,

Un nouveau test sans être certain d'avoir compris :

Sub GEO_V2()
Dim L%, PLAGE As Variant, REF As Variant
With Worksheets("Trame EMCAT GEO")
PLAGE = .Range("B15:B" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    For L = 1 To UBound(PLAGE)
        PLAGE(L, 1) = Evaluate("=VLOOKUP(" & PLAGE(L, 1) & ",'Valeurs Géo et Hauteur'!$G$2:$G$" & Worksheets("Valeurs Géo et Hauteur").Cells(Worksheets("Valeurs Géo et Hauteur").Rows.Count, 1).End(xlUp).Row & " ,1, TRUE)")
    Next L
    .Range("B15:B" & .Cells(.Rows.Count, 1).End(xlUp).Row) = PLAGE
End With
End Sub

Si ce n'est toujours pas ça, pourriez vous, joindre le même fichier, mais avec une copie dans une autre feuille du résultat final ? Sur quelques lignes ça suffira, je pense que ce sera plus simple pour comprendre.

Cdlt,

Rechercher des sujets similaires à "remplacer valeur proche nombre reference"