vlookup ne renvois rien si cellule vide

grenadine

XLDnaute Nouveau
Bonjour,

J'associe deux onglets par le biais d'un vlookup. Hors dans mon second onglet il m'arrive d'avoir des cellules vide.
Avec un vlookup cela me renvoie des 0 à la place des cellules vide. Après je dois nettoyer tout ces 0 sans supprimer les vrai zero.

J'aimerais donc améliorer mon vlookup et renvoyer une valeur seulement si la case est non vide.
Voici ce que j'ai essayé
Code:
    Range("as2").Select
            If ActiveCell.FormulaR1C1 = "=VLOOKUP(RC44,'2'!C1:C39,Column()-43,FALSE)" = "" Then
    
    ActiveCell.FormulaR1C1 = ""
    Else
         ActiveCell.FormulaR1C1 = "=VLOOKUP(RC44,'2'!C1:C39,Column()-43,FALSE)"
         
 End If

Malheureusement ça ne marche pas. Pourriez vous me donner un coup de pouce.
Merci
 

grenadine

XLDnaute Nouveau
Re : vlookup ne renvois rien si cellule vide

merci pour cette réponse lian du coup je met cette formule après mon Vlookup.
Sauf que si je renvoie des "vrai" 0 c'est à dire si j'avais une cellule dans mon onglet 2 avec un 0 je vais le supprimer aussi. Alors que je veux seulement ne rien afficher pour les cellule vide.
Enfin cela marche t-il si 0 est la valeur renvoyé par la formule? ou seuelemnt si c'est une valeur en dur?
 
Dernière édition:

grenadine

XLDnaute Nouveau
Re : vlookup ne renvois rien si cellule vide

Mes données étant confidentiel j'ai pris un peu de temps pour simuler un fichier exemple.
J'ai mis m'a macro avec.
Ce que je veux faire c'est rajouter mes informations de mon onglet 2 dans mon onglet 1 --> OK
on constate dans l'onglet 2 que:
- certaines informations notament dans la colonne somme son à 0
- je n'ai pas toujours toutes les valeurs donc j'ai des cellules vide

Si je fait un recherche v (jouer la macro) j'ai des 0 pour les "vrai" 0 des sommes et pour les cellules vides. je ne sait donc pas différencier mes 0 automatiquement.
C'est pouruqoi j'aimerais renvoyé seulement des valeurs pour les colonnes non vides.
Un peu comme la formule : =SI(RECHERCHEV($D2;'2'!$A:$F;COLONNE()-3;FAUX)="";"";RECHERCHEV($D2;'2'!$A:$F;COLONNE()-3;FAUX))
C'est ce que j'ai essayé de retranscrir en VBA mais je n'y arrive pas.
 

Pièces jointes

  • exemple.xlsm
    16.4 KB · Affichages: 103
  • exemple.xlsm
    16.4 KB · Affichages: 93
  • exemple.xlsm
    16.4 KB · Affichages: 110
Dernière édition:

Lian

XLDnaute Nouveau
Re : vlookup ne renvois rien si cellule vide

Salut,

essaie ça :
=SI(ESTVIDE(RECHERCHEV($D2;'2'!$A:$F;COLONNE()-3;FAUX));"";RECHERCHEV($D2;'2'!$A:$F;COLONNE()-3;FAUX))
la fonction ESTVIDE indique si la cellule renvoyée est vide, si c'est vide on met "" sinon on met le résultat de rechercherv.

Lian
 

Modeste

XLDnaute Barbatruc
Re : vlookup ne renvois rien si cellule vide

Bonsoir grenadine,

Comme dans cet autre fil (où tu étais d'ailleurs intervenue), ce qui serait bien ce serait d'expliquer le contexte, pour que les répondeurs puissent ne pas avancer en aveugle. Ca permettrait peut-être de comprendre pourquoi tu veux passer par du code ... pour inscrire ... une formule dans une cellule :confused:
 

grenadine

XLDnaute Nouveau
Re : vlookup ne renvois rien si cellule vide

Bonjour,

Désolée quelque urgence ont mis m'à macro de côté.
@ Modeste : J'ai besoin d'information contenus dans 2 répertoires differents d'une base de donné. Mon objectif est donc de "recoller" ces 2 répertoires réprésenté par l'onglet 1 et l'onglet 2.
Dans l'onglet 1 je colle via une recherche V 42 colonnes provenant de l'onglet 2. Mon fichier àun nombre de ligne ariable en fonction des droits et peut atteindre pour le moment jusqu'à 21000 lignes. C'est pouruqoi j'industrialise mon recherche V par une macro.
Le but à terme étant de sortir des indicateurs les utilisateurs n'auront plus qu'à coller leur données dans les onglets 1 et 2 et tout le collage et calculs se feront automatiquement en lancant la macro.

@Lian: En collant directement dans excel pas de soucis mais dans que je passe dans la macro ca ne marche plus. JE suppose que c'est parce que c'est du If et que je ne maitrise pas du tout cette fonction. cette partie
Code:
ActiveCell.FormulaR1C1 = "=IF(ISBLANK((VLOOKUP(RC44,'2'!C1:C39,Column()-43,FALSE));"";VLOOKUP(RC44,'2'!C1:C39;Column()-43,FALSE))"

J'ai aussi essayé sans plus de succès:
Code:
Range("as2").Select
            If ActiveCell.FormulaR1C1 = Isblank(VLOOKUP(RC44,'2'!C1:C39,Column()-43,FALSE)) Then
    
    ActiveCell.FormulaR1C1 = ""
    Else
         ActiveCell.FormulaR1C1 = "=VLOOKUP(RC44,'2'!C1:C39,Column()-43,FALSE)"
         
 End If


Merci de votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 497
Membres
103 562
dernier inscrit
soso21