Fonction Recherche V
doudou080
Messages postés
15
Statut
Membre
-
doudou080 -
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
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:
- Fonction Recherche V
- Fonction si et - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Hyper-v download - Télécharger - Divers Utilitaires
- Recherche image - Guide
- Je recherche une chanson - Guide
3 réponses
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 ?
Edit : Et quel serait le résultat de cette recherche ? de quelle colonne viendraient-ils ?
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
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)
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)
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
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

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