RechercheV multiples

salut à tous,

dans le fichier joint, je cherche l'équivalent d'une "rechercheV" mais multiple !

je souhaite en colonne M à partir de M6 avoir les resultats de la rcherche V par rapport à M5

matrice : tableau1

index : 8

formule ou vba, peu importe mais sous excel 2007 !!

merci d'avance de votre aide .

21classeur1.xlsx (12.32 Ko)

Bonjour,

Je n'ai pas compris votre souci
Vous avez une valeur en M5 qui vient de la colonne K
Que voulez vous avoir comme info en colonne M6 --> la colonne H ??

Vu que votre tableau est au format structuré, avez-vous pensé à l'utilisation des Segments

DAN,

oui exactement; en M6,M7,M8...... la colonne H en fonction de M5;

Et non pas de segments; c'est sous excel 2007 je ne crois pas que l'on puisse.

Et non pas de segments; c'est sous excel 2007 je ne crois pas que l'on puisse.

Juste... et vous aviez précisé la version

Faites ceci :
- allez dans l'éditeur VBA
- Insertion --> Module
- coller le code ci-dessous dans la fenêtre

Sub test()
Dim i As Byte, col As Byte
Dim cel As Range
Dim derlig As Integer

With ActiveSheet
    For Each cel In .ListObjects("Tableau1").ListColumns(1).DataBodyRange
        On Error Resume Next
        col = .Range("M5:Q5").Find(cel.Value, LookIn:=xlValues, lookat:=xlWhole).Column
        If col > 0 Then
            derlig = .Cells(Rows.Count, col).End(xlUp).Row + 1
            .Cells(derlig, col) = cel.Offset(0, 7).Value
        End If
    Next cel
End With
End Sub

- Ajouter un bouton et associez-le à cette macro
- enregistrez votre fichier au format XLSM (pour activer l'utilisation des macros)

Faite un test

Si ok -->

Cordialement

Bonjour à tous,

Avec une formule a rallonge (sierreur n'existe pas en 2007).

29classeur1.xlsx (16.62 Ko)

Dan,

c'est bizarre ça fonctionne très bien pour les colonnes M , N et Q

par contre en O et P ca me remonte des resultats en plus ...

capture

j'ai essaye en changeant la valeur en O5 par exemple, ça génère le même type d'erreur.

je comprend pas .

Djidji59430,

Si si ; le sierreur existe sur excel 2007 !

mais la formule proposé à l'air de bien fonctionner ; un peu délicat a transposer dans un autre classeur vu le nombre d'argument mais ça marche.

c'est bizarre ça fonctionne très bien pour les colonnes M , N et Q par contre en O et P ca me remonte des resultats en plus ...

Hum désolé.
il faut remettre la variable COL à zéro
Juste au-dessus de NEXT CEL, ajoutez ceci

Col = 0

dan,

c'est parfait.

petite dernière question, si le tableau1 est contenu dans un autre classeur excel : comment indiquer le chemin à suivre dans la macro ?

petite dernière question, si le tableau1 est contenu dans un autre classeur excel : comment indiquer le chemin à suivre dans la macro ?

Là cela peut être moins simple car il va falloir aller peut-être définir le lien entre les deux tableaux

Si les deux fichiers sont ouverts, il faut déjà savoir :
- le nom du fichier se trouve le code
- Le nom des fichiers contenant les tableaux

Dites moi

le second fichier sera parfois ouvert parfois fermé.

le chemin du fichier ou se trouve le code est :

I:\USERS\Magasin d'outillage MO2\M-FRAISAGE-DEMO\2 ok SUIVI PLOTS - Copie.xlsm feuille : GESTION PARC OUTILS KIWA 1

le chemin du fichier source de la base à consulté est :

I:\USERS\Magasin d'outillage MO2\M-FRAISAGE-DEMO\1 ok cas emplois outils paletises.xlsm feuille : BASE GLOBAL

ce sont vos noms de fichier ?

2 ok SUIVI PLOTS - Copie.xlsm
1 ok cas emplois outils paletises.xlsm

Dans quel fichier se trouve le tableau colonne M à Q ?

le second fichier sera parfois ouvert parfois fermé.

Le mieux est que deux fichiers soient ouverts sans quoi il faudra en plus prévoir d'ouvrir le second

oui, ce sont les noms de fichiers.

le tableau colonne M à Q est dans : 2 ok SUIVI PLOTS - Copie.xlsm feuille :GESTION PARC OUTILS KIWA 1

le tableau1 de données est lui dans : 1 ok cas emplois outils paletises.xlsm feuille : BASE GLOBAL

pour les fichiers ouverts, je m'arrangerai pour que ce soit le cas.

On considère donc ceci :

1. Le fichier 1 est le fichier "2 ok SUIVI PLOTS.XLSM" et contient
- Le code VBA
- la feuille GESTION PARC OUTILS KIWA 1
- Les colonnes M à Q à compléter

2. Le fichier 2 le fichier "1 ok cas emplois outils paletises.xlsm" et contient
- Le tableau structuré nommé Tableau1
- la feuille BASE GLOBAL
NB : ce fichier peut ne pas être ouvert

3. Les fichiers 1 et 2 sont dans le même répertoire.

Voici le code

Option Explicit
Sub test()
Dim i As Byte, col As Byte
Dim cel As Range
Dim derlig As Integer, nblig As Integer
Dim chemin As String, fichier  As String

chemin = "I:\USERS\Magasin d'outillage MO2\M-FRAISAGE-DEMO\"
fichier = "1 ok cas emplois outils paletises.xlsm"
Workbooks.Open chemin & fichier

With Workbooks(fichier).Sheets("BASE GOLBAL")
    For Each cel In .ListObjects("Tableau1").ListColumns(1).DataBodyRange
        On Error Resume Next
        With ThisWorkbook.Sheets("GESTION PARC OUTILS KIWA 1")
        col = .Range("M5:Q5").Find(cel.Value, LookIn:=xlValues, lookat:=xlWhole).Column
        If col > 0 Then
            derlig = .Cells(Rows.Count, col).End(xlUp).Row + 1
            .Cells(derlig, col) = cel.Offset(0, 7).Value
        End If
        col = 0
        End With
    Next cel
End With
End Sub

Le code ouvrira le fichier s'il n'est pas ouvert

REM : avec les codes VBA il est préférable de ne jamais avoir des espaces dans le nom des fichiers et des feuilles. C'est toujours une source d'erreur.

Cordialement

dan,

c'est super. ça marche à la perfection et j'ai réussi à l'intégrer à l'ensemble de mon fichier .

merci.

Rechercher des sujets similaires à "recherchev multiples"