pas de valeur erreur avec vlookup

pas de valeur erreur avec vlookup - VB/VBA/VBS - Programmation

Marsh Posté le 23-10-2007 à 15:18:59    

Bonjour à tous,
voici mon souci :
Je compare deux listes : une ancienne (feuille "ancien" ) et une nouvelle (feuille "nouveau" ).
je compare la nouvelleliste avec une boucle while <>"" et je recherche si chaque cellule existe dans l'ancienne liste. Ensuite si elle n'existe pas je devrais l'ajouter. Mais je n'en suis pas encore là!!
 
J'ai bidouillé la fonction lookup avec ce que j'ai lu sur le net et lorsqu'elle ne trouve pas la cellule dans la feuille ancienne elle ne me renvoie pas N/A (valeur que je souhaite tester par la suite), elle me renvoie la cellule en cours (cell(i,1))
 
voici un extrait !  
i = 3
Dim zone As Range
Set zone = Worksheets("ancien" ).Range("A3:C" & nbligneancien + 2)
Worksheets("ancien" ).Select 'sinon vlookup marche pas
 
While Worksheets("nouveau" ).Cells(i, 1) <> ""
Worksheets("ancien" ).Range("C1" ) = Application.WorksheetFunction.VLookup(Cells(i, 1), zone, 1, False)
'If estna(Worksheets("ancien" ).Range("C1" )) Then 'pas trouve la réference
'faire la copie/collage
'End If
i = i + 1
Wend
 
Merci à tous ceux qui auront un peu de temps pour m'aider
Doli

Reply

Marsh Posté le 23-10-2007 à 15:18:59   

Reply

Marsh Posté le 24-10-2007 à 09:08:02    

Il s'agit peut-être d'un problème de structure de « zone ».
Il faudrait que tu fasses un test en insérant une fonction RECHERCHEV dans ta feuille pour tester manuellement tes paramètres.
Si par ce moyen tu ne retrouves pas les bonnes valeurs c'est que « zone » est mal construire, sinon cela pourrait vouloir dire qu'elle est mal référencée dans le code.


Message édité par tegu le 24-10-2007 à 09:08:19
Reply

Marsh Posté le 24-10-2007 à 11:10:11    

Bonjour,
 
J'ai testé avec rechercheV est cela fonctionne effectivement.
je pense que Vlookup ne fonctionne pas avec des "zones" de feuilles différentes.
Finalement j'ai appelé toutes mes informations dans la même feuille et je les teste dans des cellules.
 
Cela fonctionne mais ce n'est pas ce que je souhaitai au départ. Je souhaitai tester directement "esterror(Vlookup)".
Quand on est pas pro on bidouille !!! Dommage.
 
 i = 3
    Dim zone As Range
    Worksheets("ancien" ).Activate
    Set zone = Range("A3:C" & nbligneancien + 2)
    zone.Name = "BaseRecherche" 'donner un nom à la sélection
   
    While Worksheets("nouveau" ).Cells(i, 1) <> "" 'tant qu'on est pas à la fin de la liste nouveau
   
    Worksheets("ancien" ).Range("C1" ) = Worksheets("nouveau" ).Cells(i, 1) 'je met la nouvelle valeur dans la feuille ancien
    Worksheets("ancien" ).Range("D1" ) = "=vlookup(C1, BaseRecherche, 1, 0)" ' je fais ma recherche à l'intérieur feuille ancien
    Worksheets("ancien" ).Activate
    If IsError(Range("D1" ).Value) = True Then 'pas trouve la réference on l'ajoute
          Worksheets("nouveau" ).Rows(i).Copy 'sélection ligne à copier
       
          Rows(numligneajout).Select 'sélection endroit destination pour coller
          ActiveSheet.Paste 'colle le presse papier
 
           numligneajout = numligneajout + 1 ' une ligne de plus dans l'ancien classeur
         
         End If
        i = i + 1
    Wend
 
Voila, voila ...
Si ça peut servir à quelqu'un.
 
Merci pour la réponse.
Doli

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed