Renvoyer valeur sur une ligne en fonction d'un critère
Fermé
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
-
29 juin 2016 à 14:42
Littleshoe Messages postés 20 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 4 août 2016 - 4 août 2016 à 10:56
Littleshoe Messages postés 20 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 4 août 2016 - 4 août 2016 à 10:56
A voir également:
- Renvoyer valeur sur une ligne en fonction d'un critère
- Fonction si et - Guide
- Partager photos en ligne - Guide
- Vente en ligne particulier - Guide
- Comment aller à la ligne sur excel - Guide
- Test performance pc en ligne - Guide
5 réponses
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
29 juin 2016 à 15:31
29 juin 2016 à 15:31
Bonjour,
Je n'ai pas su faire autrement qu'avec du code.
Mais voici un fichier qui marche plutôt bien : https://www.cjoint.com/c/FFDnFOgkaxf
Cordialement.
Je n'ai pas su faire autrement qu'avec du code.
Mais voici un fichier qui marche plutôt bien : https://www.cjoint.com/c/FFDnFOgkaxf
Cordialement.
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
29 juin 2016 à 15:44
29 juin 2016 à 15:44
Bonjour,
Tu peux également utiliser un filtre avancé qui te permettra d'afficher le résultat dans une colonne dédiée.
A+
Tu peux également utiliser un filtre avancé qui te permettra d'afficher le résultat dans une colonne dédiée.
A+
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
29 juin 2016 à 16:15
29 juin 2016 à 16:15
Bonjour à tous
Un exemple sans macro (avec deux colonnes de service)
http://www.cjoint.com/c/FFDopuqaSMu
Cdlmnt
Un exemple sans macro (avec deux colonnes de service)
http://www.cjoint.com/c/FFDopuqaSMu
Cdlmnt
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
30 juin 2016 à 16:03
30 juin 2016 à 16:03
et avec une seule colonne de service
http://www.cjoint.com/c/FFEodc1qVku
Cdlmnt
http://www.cjoint.com/c/FFEodc1qVku
Cdlmnt
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
30 juin 2016 à 15:48
30 juin 2016 à 15:48
Bonjour à tous.
L'exemple de ccm81 est excellent également. L'idée de Gyrus est aussi très bonne. C'est vraiment à toi de voir ce que tu préfères.
En tout cas, voici le code commenté comme tu me l'as demandé, n'hésites surtout pas si tu as des questions :
Cordialement.
L'exemple de ccm81 est excellent également. L'idée de Gyrus est aussi très bonne. C'est vraiment à toi de voir ce que tu préfères.
En tout cas, voici le code commenté comme tu me l'as demandé, n'hésites surtout pas si tu as des questions :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Macro qui s'éxécute à chaque nouvelle sélection de cellule sur la feuille Dim DL As Long, DC As Long 'Définition des variable (ne pas toucher) DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'Détermine la dernière ligne (en fonction de la colonne A, mettre la colonne qui est remplie le plus bas) DC = Cells(1, Application.Columns.Count).End(xlToLeft).Column 'Détermine la dernière colonne (en fonction de la ligne 1) Range("J3").Validation.Delete 'Supprime la liste déroulante de la cellule J3 Range("K3:K2000").ClearContents 'Supprime les valeurs de K3 à K2000 With Range("J3").Validation 'Crée la liste déroulante en J3 .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Formula1:="=" & Range(Cells(1, 2), Cells(1, DC)).Address 'Les valeurs de la liste déroulante vont de la cellule B1 (Celle(ligne, colonne)) à la cellule Dernière colonne 1 (Cells(ligne, DC donc dernière colonne) End With y = 3 'Définit la variable y = 3 For j = 2 To DC 'Boucle pour j allant de la colonne 2 à la dernière colonne If Cells(1, j).Value = Range("J3").Value Then 'Si la cellule de la colonne j ligne 1 = Cellule J3 alors For i = 2 To DL 'Boucle pour i allant de la ligne 2 à la dernière ligne If Cells(i, j) = "x" Then 'Si la cellule de ligne i et de la colonne j = "x" alors Range("K" & y).Value = Range("A" & i).Value 'La cellule de la colonne K et de la ligne y (définit comme étant égal à 3) = La cellule de la colonne A et de la ligne i (la machine quoi) y = y + 1 'Incrémente y de 1, ce qui veut dire qu'à la prochaine condition, y sera égal à 4 puis 5 puis 6... End If 'Fin de la condition Next i 'Prochaine ligne de la boucle i End If 'Fin de la condition Next j 'Prochaine ligne de la boucle j End Sub 'Fin de macro
Cordialement.
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
1 août 2016 à 15:11
1 août 2016 à 15:11
Bonjour Kuartz,
Tout d'abord merci pour ton aide et tes commentaires sur le code VBA suivant:
C'est top, mais pour comprendre la définition de variable.
Pourrais -tu m'aider sur un autre point de ce code. Ici la bdd (tableau) et la liste déroulante, et les réponses du code sont sur la même feuille.
Est il possible d'établir les variables DL/DC pour la base de donnée sur autre une feuille de calcul?
Et de mettre la liste déroulante dans une autre tout en gardant le type de code : Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Macro qui s'éxécute à chaque nouvelle sélection de cellule sur la feuille
Merci d'avance?.
Tout d'abord merci pour ton aide et tes commentaires sur le code VBA suivant:
C'est top, mais pour comprendre la définition de variable.
Pourrais -tu m'aider sur un autre point de ce code. Ici la bdd (tableau) et la liste déroulante, et les réponses du code sont sur la même feuille.
Est il possible d'établir les variables DL/DC pour la base de donnée sur autre une feuille de calcul?
Et de mettre la liste déroulante dans une autre tout en gardant le type de code : Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Macro qui s'éxécute à chaque nouvelle sélection de cellule sur la feuille
Merci d'avance?.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 août 2016 à 15:42
3 août 2016 à 15:42
Bonjour bonjour,
Pour avoir la dernière ligne sur une autre feuille, il suffit de la rajouter devant la ligne de code :
Pareil pour DC.
Après et ben tu n'as plus qu'à remettre le même code pour la liste. Sauf qu'il faut ajouter le nom de la feuille, again.
Cordialement.
Pour avoir la dernière ligne sur une autre feuille, il suffit de la rajouter devant la ligne de code :
DL = Sheets("nomdelafeuille").Cells(Application.Rows.Count, 1).End(xlUp).Row
Pareil pour DC.
Après et ben tu n'as plus qu'à remettre le même code pour la liste. Sauf qu'il faut ajouter le nom de la feuille, again.
Formula1:="=" & Sheets("nomdelafeuille").Range(Cells(1, 2), Cells(1, DC)).Address
Cordialement.
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
Modifié par Littleshoe le 3/08/2016 à 16:28
Modifié par Littleshoe le 3/08/2016 à 16:28
Bonjour Kuartz,
Merci pour ta réponse, mais j'ai toujours probleme avec le code? erreur de compilation et de syntaxe:
Voici le modifs, Aurais-tu une idée?
Merci pour ta réponse, mais j'ai toujours probleme avec le code? erreur de compilation et de syntaxe:
Dim DL As Long, DC As Long 'Définition des variable (ne pas toucher) DL = Sheets("test").Cells(Application.Rows.Count, 1).End(xlUp).Row 'Détermine la dernière ligne (en fonction de la colonne A, mettre la colonne qui est remplie le plus bas) DC = Sheets("test").Cells(1, Application.Columns.Count).End(xlToLeft).Column 'Détermine la dernière colonne (en fonction de la ligne 1) Range("F3").Validation.Delete 'Supprime la liste déroulante de la cellule J3 Range("G3:G2000").ClearContents 'Supprime les valeurs de G3 à G2000 With Range("F3").Validation 'Crée la liste déroulante en F3 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=" & Sheets("test").Range(Cells(1, 2), Cells(1, DC)).Address End With
Voici le modifs, Aurais-tu une idée?
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
>
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
3 août 2016 à 16:45
3 août 2016 à 16:45
Ah oui oui, j'en ai une, tu as oublié les "_" après .Add Type:=xlValidateList et AlertStyle:=xlValidAlertStop. Du coup la machine ne comprend pas qu'il s'agit en fait de la même ligne.
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
3 août 2016 à 16:52
3 août 2016 à 16:52
Merci Kuartz,
pour ta réponse rapide, mais le code de neut toujours pas fonctionner, j'essaye de le tripoter dans tous les sens mais toujours pas.
Ci-joint le fichier:
https://www.cjoint.com/c/FHdoZbIzYFG
Si tu as tu temps pourrais m'aider sur ce point?
merci d'avance.
pour ta réponse rapide, mais le code de neut toujours pas fonctionner, j'essaye de le tripoter dans tous les sens mais toujours pas.
Ci-joint le fichier:
https://www.cjoint.com/c/FHdoZbIzYFG
Si tu as tu temps pourrais m'aider sur ce point?
merci d'avance.
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
>
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
3 août 2016 à 16:56
3 août 2016 à 16:56
Ca fonctionne si tu fais bien un copier/coller de mon code initial et que tu change juste les valeurs dont tu as besoin.
https://www.cjoint.com/c/FHdo4jwJ24f
https://www.cjoint.com/c/FHdo4jwJ24f
Littleshoe
Messages postés
20
Date d'inscription
lundi 2 mars 2015
Statut
Membre
Dernière intervention
4 août 2016
3 août 2016 à 17:10
3 août 2016 à 17:10
Hello Kuartz,
Honnetement, je dois etre un peu bête j'ai fait tous ce que tu as dit de faire, mais ça ne focntionne toujours pas.
Pourrais-tu m'aider?
Honnetement, je dois etre un peu bête j'ai fait tous ce que tu as dit de faire, mais ça ne focntionne toujours pas.
Pourrais-tu m'aider?
29 juin 2016 à 15:43
c'est parfait Merci beaucoup !!!
Etant donné que je vais modifier le code en fonction du fichier,
Pourrais tu, si tu as le temps insérér des commentaires dans le code?
Il y a des choses que je comprends pas trop.
Merci d'avance Kuartz !