XL 2013 Remplacer ou pas le contenu d'une cellule avec RECHERCHEV

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SurfingJoe

XLDnaute Nouveau
Bonjour à tous, avec la fonction =RECHERCHEV($A2;Feuil1!$A$1:$T$247; 2;FAUX).

;FAUX) renvoie #N/A, s’il n’y a pas de correspondance… Ce que j’aimerai c’est qu’en cas de non correspondance le contenu de la cellule ne soit pas modifié et conserve ses données d’origines…

Voir fichier ci-joint, et grand merci il y a vraiment des as d’Excel sur ce forum !
 

Pièces jointes

Bonjour le forum,

VB:
=SIERREUR(RECHERCHEV($A2;Feuil1!$A$1:$T$247; 2;0);"")

Merci beaucoup j'avais essayé ça, mais dans ce cas "Paul" est effacé et B4 affiche une cellule vide, Ce que j’aimerais c’est qu’en cas de non correspondance le contenu de la cellule ne soit pas modifié et conserve ses données d’origines… C'est ce que je ne parviens pas à obtenir!
 

Pièces jointes

Bonjour SurfingJoe, excfl,

Voyez le fichier joint et ce code dans Feuil2 (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Activate()
Dim d As Object, tablo, i&, x$
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Feuil1.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo)
    x = CStr(tablo(i, 1))
    If x <> "" Then d(x) = tablo(i, 2)
Next
If FilterMode Then ShowAllData 'si la feuille est filtrée
With UsedRange
    tablo = .Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        x = CStr(tablo(i, 1))
        If d.exists(x) Then tablo(i, 2) = d(x)
    Next
    .Columns(2) = Application.Index(tablo, , 2) 'restitution
End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
Il s'exécute quand on active la feuille ou qu'on y sélectionne une cellule.

C'est très rapide car on utilise des tableaux VBA et le Dictionary.

A+
 

Pièces jointes

Merci c'est très sympa, ça fonctionne très bien, mais en fait je voudrais travailler ligne par ligne, car je dois vérifier...
En fait j'ai trouvé une solution bricole, en créant une colonne C copiant les noms des propriétaires d'origine, puis à la place de ;""), je rentre la cellule de la nouvelle colonne. C'est bricole, mais je fais avec mon petit savoir.

Merci à vous tous vous êtes au top!
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Réponses
3
Affichages
2 K
Réponses
4
Affichages
3 K
Retour