Declage de ligne

Bonsoir

j'extrais des données en ligne avec Vlookuplistsplitpercells mais j'ai un décalage de ligne dans ma feuille de trie

bien que la fonction soit copier a partir de la ligne 2 comprise le résultat ne s'affiche qu'a partir de la ligne 3 la ligne 2 reste vide.

j'ai essayé de modifier la macro mais je ne trouve pas pourriez vous m'aider

merci EF

28esaie-vlookup.7z (282.59 Ko)

Bonjour evraere.

Je suppose que tu as récupéré la formule sur internet.

As-tu essayé de la comprendre en mode Pas à Pas ?

Tu te rendras compte que :

  • Le résultat s'enregistre dans ChaineValeursTrouvees
  • La liste des résultats est séparé par un Separator
  • Le résultat décomposé découpe la chaîne de caractère à chaque Separator

Et en regardant comment se crée la chaîne de caractère :

ChaineValeursTrouvees = ChaineValeursTrouvees & Separator & Table_De_Recherche(i, no_index_col).Value

On remarque que pour le premier résultat trouvé on ajoute déjà un Separator.

Le résultat te donne au finale, selon ton fichier :

";1400"

en colonne D.

Automatiquement quand tu découperas cette chaîne tu obtiendras deux champs :

  • "" pour le premier (avant le ";")
  • 1400 pour le second (après le ";")

Ceci est dû au mauvais placement du CompteurValeursTrouvees, corrige le ainsi :

For i = 0 To NbLignes
    If Table_De_Recherche(i, 1).Value = Valeur_Recherchee.Value Then
        If CompteurValeursTrouvees > 0 Then
        ChaineValeursTrouvees = ChaineValeursTrouvees & Separator & Table_De_Recherche(i, no_index_col).Value
        Else
        ChaineValeursTrouvees = Table_De_Recherche(i, no_index_col).Value
        CompteurValeursTrouvees = CompteurValeursTrouvees + 1
        End If
    End If
Next i

Bonsoir

en effet la fonction vient d'internet ,j'ai modifier selon ton exemple le problème est que la ligne se répète plusieurs fois bien que le nom ne soit trouvé qu'une fois.

le problème semble venir de la boucle, mais quoi ?

dans la formule internet la ligne 8 est la suivante (for i=1 to NbLignes ) moi j' ai mis 0 et à la ligne 11 (if compteurvaleurstrouvéés > 1 then) même chose j'ai mis 0 se qui donné le résultat voulu mais décalé.

je rejoint un exemple plus compréhensible

15esaie-vlookup.7z (287.81 Ko)

Ton fichier en retour. J'espère répondre à ta demande.

J'en ai profité pour modifier la colonne de recherche avec un Equiv, qui te permet de connaître l'emplacement de la colonne dans la ligne.

Mais une question, pourquoi partir sur une fonction matricielle, pourquoi ne pas réaliser une procédure complète VBA, qui te sortira le nombre de lignes nécessaires, ça t'évitera les erreurs également.

Bonjour

dans l'exemple que tu as mis tu a ajouté un même nom (Ghor). Quand j'ai plusieurs noms identiques le programme tourne bien

mais dès que je change de nom celui ci se répète sans arrêt donc je ne suis pas sûr que la recherche soit bonne c'est pourquoi

je voudrais avoir le nom et ses données qu'une fois et garder les (#N/A)

pour répondre a ta question: je ne connait pas grand chose en programmation j'utilise tant bien que mal les fonctions Excel ça se limite là, ensuite je récupère des programmes que j'essaie de comprendre et que je modifie je modifie.

merci pour votre aide qui me permet de progresser

Bonjour,

J'essaie d'effectuer ce code

VlookUpListSplitPerCells mais seul résultat que j'obtiens est le suivant

#NOM?

Quelqu'un aurait-il une idée du pourquoi du comment?

Merci

bonsoir

joindre un exemple

merci EF

Rechercher des sujets similaires à "declage ligne"