Fonction Recherche V
Fermé
doudou080
Messages postés
15
Date d'inscription
lundi 6 mars 2017
Statut
Membre
Dernière intervention
22 octobre 2017
-
6 mars 2017 à 20:36
doudou080 - 10 mars 2017 à 09:38
doudou080 - 10 mars 2017 à 09:38
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 adresse - Guide
- Fonction moyenne excel - Guide
3 réponses
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
Modifié par Kartzull le 6/03/2017 à 21:44
Modifié par Kartzull le 6/03/2017 à 21:44
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 ?
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
6 mars 2017 à 23:20
6 mars 2017 à 23:20
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
doudou080
Messages postés
15
Date d'inscription
lundi 6 mars 2017
Statut
Membre
Dernière intervention
22 octobre 2017
7 mars 2017 à 00:12
7 mars 2017 à 00:12
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é
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é
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
7 mars 2017 à 21:36
7 mars 2017 à 21:36
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)
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
7 mars 2017 à 22:03
7 mars 2017 à 22:03
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
doudou080
Messages postés
15
Date d'inscription
lundi 6 mars 2017
Statut
Membre
Dernière intervention
22 octobre 2017
8 mars 2017 à 17:38
8 mars 2017 à 17:38
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
8 mars 2017 à 19:53
8 mars 2017 à 19:53
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?
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
Modifié par Kartzull le 8/03/2017 à 20:04
Modifié par Kartzull le 8/03/2017 à 20:04
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
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
138
9 mars 2017 à 18:15
9 mars 2017 à 18:15
Problème résolu ou il manque encore qqchose ?
doudou080
>
Kartzull
Messages postés
537
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
5 mai 2018
9 mars 2017 à 18:43
9 mars 2017 à 18:43
Bonsoir
Jr ne suis pas chez moi ce soir
Je regarde demain
Encore merci pour ton aide
Bonne soirée
Jr ne suis pas chez moi ce soir
Je regarde demain
Encore merci pour ton aide
Bonne soirée
Modifié par doudou080 le 6/03/2017 à 21:54
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
Modifié par Kartzull le 6/03/2017 à 21:58
6 mars 2017 à 22:02