Fonction Recherche V
doudou080
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
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 photo - 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