Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1896 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [résolu]Jointure/recherchev en vba

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Jointure/recherchev en vba

n°2140473
ichigo56
Posté le 03-05-2012 à 15:36:54  profilanswer
 

Bonjour,
 
Je vous explique mon probleme, j'ai deux fichiers comportant une même colonne, et il me faut faire une jointure, apres recherche je n'ai trouver que Vlookup pour m'aider.
 
Et donc je me lance dans vlookup:
 
Je parcoure la colonne, et ajouter le vlookup a chaque ligne.
Probleme : mon Vlookup ne fonctionne pas. Je pense qu'il y a un probleme sur les champs.
si vous pouviez m'aider :)
 

Code :
  1. Function createVlook(wk As Variant, wk2 As Variant)
  2. Dim FL1 As Worksheet, NoCol As Integer
  3. Dim NoLig As Long, Var As Variant
  4.     wk.Activate
  5.     Set FL1 = ActiveWorkbook.ActiveSheet
  6.     NoCol = 24 'lecture de la colonne 1
  7.     For NoLig = 1 To Split(FL1.UsedRange.Address, "$" )(4)
  8.         Var = FL1.Cells(NoLig, NoCol)
  9.         With FL1
  10.          .Range("" & lettre_col(NoCol) & NoLig).Value = WorksheetFunction.VLookup(.Range("M" & NoLig).Value, "[" & wk2.Name & "]" & wk2.Sheets(1).Name & "!$1:$65536", 8, False)
  11.         End With
  12.     Next
  13.     Set FL1 = Nothing
  14. End Function


 
exemple en dur de recherchev :
 

Code :
  1. =RECHERCHEV(M1;'[Extraction_importa_cap_PR.xls]8e492742-33ad-4f15-9384-cdd5935'!$A$1:$CY$319;8;FAUX)


Message édité par ichigo56 le 04-05-2012 à 10:13:23

---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»
mood
Publicité
Posté le 03-05-2012 à 15:36:54  profilanswer
 

n°2140632
vave
Nice to meet me
Posté le 04-05-2012 à 07:50:25  profilanswer
 

Bonjour,
 
Je ne crois pas qu'il faille (??) reconstituer la formule avec '[NomDuClasseur]NomDeLaFeuille! ... etc.
C'est avec .Formula ou .FormulaLocal qu'il faudrait faire ça.
 
Pour ton problème, essaies comme ça :

Code :
  1. With FL1
  2.     .Range("" & lettre_col(NoCol) & NoLig).Value = WorksheetFunction.VLookup(.Range("M" & NoLig).Value, wk2.Sheets(1).Range("1:65536" ), 8, False)
  3. End With


 
Par contre, attention : si la valeur n'est pas trouvée, tu auras une erreur d’exécution qu'il faudra gérer.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2140640
ichigo56
Posté le 04-05-2012 à 08:45:37  profilanswer
 

vave a écrit :

Bonjour,
 
Je ne crois pas qu'il faille (??) reconstituer la formule avec '[NomDuClasseur]NomDeLaFeuille! ... etc.
C'est avec .Formula ou .FormulaLocal qu'il faudrait faire ça.
 
Pour ton problème, essaies comme ça :

Code :
  1. With FL1
  2.     .Range("" & lettre_col(NoCol) & NoLig).Value = WorksheetFunction.VLookup(.Range("M" & NoLig).Value, wk2.Sheets(1).Range("1:65536" ), 8, False)
  3. End With


 
Par contre, attention : si la valeur n'est pas trouvée, tu auras une erreur d’exécution qu'il faudra gérer.


 
 
MErci pour l'aide, mais le probleme reste le même,impossible de lire la propriete vlookup de la classe Worksheetfunction :(


---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»
n°2140672
vave
Nice to meet me
Posté le 04-05-2012 à 10:08:59  profilanswer
 

Tu es sûr que la valeur cherchée est bien dans la table où tu la recherche ?
 
Au pire, essaies avec True à la place de False, tu verras si ça vient de ça ou pas.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2140674
ichigo56
Posté le 04-05-2012 à 10:13:02  profilanswer
 

Je penses qu'il y avait plusieurs chose de pas extra, le fait que certain colonne dans la recherche soit vide, je l'ai gere avec un "On Error resume next".
 
Et j'ai refais mon code, moins compliqué et au miracle cela fonctionne :

Code :
  1. .Cells(NoLig, NoCol).Value = Application.WorksheetFunction.VLookup(Cells(NoLig, Colid).Value, wk2.Sheets(1).Range("1:65536" ), 8, False)


---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [résolu]Jointure/recherchev en vba

 

Sujets relatifs
[RESOLU] Plusieurs "like" de suite + probleme jointure[MySQL] Jointure sur une meme table
probleme requete sql jointure entre les tablesexcel recherchev par onglets ou pas?
Requête avec jointure et multiples conditions[RESOLU]Quel type de jointure pour ceci ?
Pbme de jointure (débutant)RESOLU [Access 2003] Requête jointure et union
Req sur 3 fichiers Excel - Comment s'utilise RechercheV en VBA svp ? 
Plus de sujets relatifs à : [résolu]Jointure/recherchev en vba


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR