Fonction Recherche V

doudou080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
 doudou080 -
bonjour a tous

j'ai besoin d'aide car je suis une quiche

je voudrais faire une recherche sur une feuille excel dans les colonnes de B a K
pour trouver tous les produis qui s'ont a zéro dans la colonne K par rapport a la colonne A

on m'a parlé de la fonction =rechercheV ?

=SI((RECHERCHEV(A:A;B:K;4;VRAI));"";RECHERCHEV(A:A;B:K;4;VRAI))



je ne sais pas si vous allez comprendre mon charabia

au plaisir de vous lire
A voir également:

3 réponses

Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
J'avoue ne pas avoir totalement compris. Tu cherches à avoir une liste de 'codes' pour chaque produits qui est à zéro dans la colonne K? Mais les quels sur cette image sont à zéro dans la colonne K? et à quoi correspondent les codes de la colonne à?

Edit : Et quel serait le résultat de cette recherche ? de quelle colonne viendraient-ils ?
0
doudou080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir
tout d’abord merci de prêter attention a mon probleme.

je veux retrouver dans les colonnes ( B a K ) les memes code que la colonne A
mais que ceux qui n'on pas de code dedans

cordialement
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
En une seule cellule ? ou en une autre colonne entière ?
0
doudou080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   > Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention  
 
sur une autre colonne
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Si une macro est ok pour toi, en voici une par exemple :

Sub RechercheProduits()

Dim Column1 As Integer, Column2 As Integer, ColumnResult As Integer, Nbr As Integer

'Colonne A = 1
Column1 = 1
'Colonne K = 11
Column2 = 11
'Colonne L = 12
ColumnResult = 12
'Nombre de lignes
Nbr = 99


' Efface la colonne resultat
Columns(ColumnResult).ClearContents
Dim n1 As Integer, nResult As Integer
n1 = 1
nResult = 1
'Si valeur colonne 1 pas vide
While IsEmpty(Cells(n1, Column1)) = False
    Dim n2 As Integer
    'Pour lignes de 1 à <Nbr>
    For n2 = 1 To Nbr
        'Si valeur colonne 2 pas vide
        If IsEmpty(Cells(n2, Column2)) = False Then
            'Si valeur colonne 1 = valeur colonne 2
            If Cells(n1, 1).Value = Cells(n2, Column2).Value Then
                'Copier le contenu de la colonne 2 dans la colonne Resultat
                
                'Version à la suite
                Cells(nResult, ColumnResult).Value = Cells(n2, Column2).Value
                nResult = nResult + 1
                
                'Pour être sur a même ligne que la colonne K, remplacer les 2 lignes du dessus par
                'Cells(n2, ColumnResult).Value = Cells(n2, Column2).Value
            End If
        End If
    Next
    'Incrémenter le compteur de la colonne 1
    n1 = n1 + 1
Wend
    
End Sub
0
doudou080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
une macro pourquoi pas.
par contre je n'arrive pas a la faire fonctionné
je fais une insertion module dans visual basic puis copier et coller le code dedans.
j'ai créer un bouton Control de formulaire mais ca ne fonctionne pas

desolé
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Mais tu es sur d'avoir des codes identiques entre a colonne K et A ? Car sur l'image en tout cas, je n'en vois pas. Et si j'ai bien compris c'est ce que tu recherche, comparer les codes de la colonne K et A.

Ou en relisant, tu veux peut être plutôt comparer les codes de la colonne A à toutes les autres données de la colonne B à K ? Et les codes identiques ( Par ex. 456 et 34567)
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Modif si c'est pour toutes les colonnes (de B à K, modifiable dans le code)

Sub RechercheProduits()

Dim ColumnDonnee As Byte, ColumnMin As Byte, ColumnMax As Byte, ColumnResult As Byte, NbrMin As Integer, NbrMax As Integer

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Important : Mettre les valeurs de la colonne A sans ligne vide.
''             Une ligne vide signifie la fin de la liste.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''' Valeurs modifiables '''''''''''

'Colonne A = 1
ColumnDonnee = 1
'Colonne B = 2
ColumnMin = 2
'Colonne K = 11
ColumnMax = 11
'Colonne L = 12
ColumnResult = 12
'Numero de ligne Min (Pour la recherche des données,
' des valeurs et l'écriture des résultats)
NbrMin = 1
'Numero de ligne Max (Pour la recherche de valeurs)
NbrMax = 99

''''''''''''''''''''''''''''''''''''''''

' Efface la colonne resultat
Columns(ColumnResult).ClearContents
' Numero de ligne
Dim nDonnee As Integer, nResult As Integer
nDonnee = NbrMin
nResult = NbrMin
'Si valeur colonne donnee pas vide
While IsEmpty(Cells(nDonnee, ColumnDonnee)) = False

    Dim nVal As Integer, Column1 As Integer
    For ColumnVal = ColumnMin To ColumnMax
    
        'Pour lignes de Min à Max
        For nVal = NbrMin To NbrMax
        
            'Si valeur colonne valeur pas vide
            If IsEmpty(Cells(nVal, ColumnVal)) = False Then
            
                'Si valeur colonne donnee = valeur colonne valeur
                If Cells(nDonnee, ColumnDonnee).Value = Cells(nVal, ColumnVal).Value Then
                
                    'Copier le contenu de la colonne valeur dans la colonne Resultat
                    Cells(nResult, ColumnResult).Value = Cells(nVal, ColumnVal).Value
                    nResult = nResult + 1
                End If
            End If
        Next
    Next
    'Incrémenter le compteur de la colonne donnee
    nDonnee = nDonnee + 1
Wend


End Sub
0
doudou080 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir Kartzull

j'ai simulé sur un fichier les résultats que je souhait voir apparaitre dans la colonne L
ce sera peut etre plus claire que toutes mes explications a la con lol
cordialement
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Donc mettre dans la colonne L sur la même ligne de la recherche et afficher le résultat uniquement si la valeur dans la colonne K est vide?
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Sub RechercheProduits()

Dim ColumnDonnee As Byte, ColumnMin As Byte, ColumnMax As Byte, ColumnResult As Byte, NbrMin As Integer, NbrMax As Integer

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Important : Mettre les valeurs de la colonne A sans ligne vide.
''             Une ligne vide signifie la fin de la liste.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''' Valeurs modifiables '''''''''''

'Colonne A = 1
'...
'Colonne L = 12

'Colonne des données à rechercher
ColumnDonnee = 1
'Colonne min
ColumnMin = 2
'Colonne max
ColumnMax = 10
'Colonne où vérifier que la valeur est vide
ColumnCheck = 11
'Colonne du resultat
ColumnResult = 12
'Numero de ligne Min (Pour la recherche des données,
' des valeurs et l'écriture des résultats)
NbrMin = 1
'Numero de ligne Max (Pour la recherche de valeurs)
NbrMax = 99

''''''''''''''''''''''''''''''''''''''''

' Efface la colonne resultat
Columns(ColumnResult).ClearContents
' Numero de ligne
Dim nDonnee As Integer
nDonnee = NbrMin
'Si valeur colonne donnee pas vide
While IsEmpty(Cells(nDonnee, ColumnDonnee)) = False

Dim nVal As Integer, Column1 As Integer
    For ColumnVal = ColumnMin To ColumnMax

'Pour lignes de Min à Max
        For nVal = NbrMin To NbrMax
            If IsEmpty(Cells(nVal, ColumnCheck)) = True Then
                'Si valeur colonne valeur pas vide
                If IsEmpty(Cells(nVal, ColumnVal)) = False Then

'Si valeur colonne donnee = valeur colonne valeur
                    If Cells(nDonnee, ColumnDonnee).Value = Cells(nVal, ColumnVal).Value Then

'Copier le contenu de la colonne valeur dans la colonne Resultat
                        Cells(nVal, ColumnResult).Value = Cells(nVal, ColumnVal).Value
                    End If
                End If
            End If
        Next
    Next
    'Incrémenter le compteur de la colonne donnee
    nDonnee = nDonnee + 1
Wend


End Sub
0
Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention   138
 
Problème résolu ou il manque encore qqchose ?
0
doudou080 > Kartzull Messages postés 541 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir
Jr ne suis pas chez moi ce soir
Je regarde demain
Encore merci pour ton aide
Bonne soirée
0
doudou080 > doudou080
 
bonjour Kartzull

elle est impeccable ta macro

encore merci pour ton aide
0