Identifiant associé à une phrase dans une liste déroulante
Résolu/Fermé
Nashimok
Messages postés
19
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
16 juin 2017
-
10 août 2016 à 16:28
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 sept. 2016 à 18:15
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 sept. 2016 à 18:15
A voir également:
- Identifiant associé à une phrase dans une liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Identifiant et mot de passe - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer liste déroulante excel - Forum Réseaux sociaux
2 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
10 août 2016 à 21:50
10 août 2016 à 21:50
Bonjour,
un code en VBA qui me permettra de compter le nombre d’occurrence de chaque phrase
Tu écris parce qu'il n'a pas encore assez de fonctions excel pour le faire ?
le code associé apparaisse automatiquement dans la colonne précédente
Avec cette formule par exemple :
un code en VBA qui me permettra de compter le nombre d’occurrence de chaque phrase
Tu écris parce qu'il n'a pas encore assez de fonctions excel pour le faire ?
le code associé apparaisse automatiquement dans la colonne précédente
Avec cette formule par exemple :
=DECALER(Feuil2!$C$1;EQUIV(G2;Feuil2!E:E;0)-1;0)
Nashimok
Messages postés
19
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
16 juin 2017
11 août 2016 à 16:41
11 août 2016 à 16:41
Super, ça marche avec DECALER et INDEX, j'ai choisi d'utiliser INDEX car je la trouve plus facile à comprendre, comme ce n'est pas moi qui va utiliser le document.
@gbinforme : en fait, j'écris un code VBA qui me permet de générer un graphique en fonction du nombre d'occurrences de chaque phrase quand je clique sur un bouton.
J'ai choisi le VBA parce que je sais faire, mais je t'avoue que je ne sais pas compter le nombre d'occurrences avec une formule Excel ... Je veux bien avoir l'astuce si tu l'as :)
Merci @gbinforme et @RaymondPENTIER en tout cas !
@gbinforme : en fait, j'écris un code VBA qui me permet de générer un graphique en fonction du nombre d'occurrences de chaque phrase quand je clique sur un bouton.
J'ai choisi le VBA parce que je sais faire, mais je t'avoue que je ne sais pas compter le nombre d'occurrences avec une formule Excel ... Je veux bien avoir l'astuce si tu l'as :)
Merci @gbinforme et @RaymondPENTIER en tout cas !
Raymond PENTIER
Messages postés
58836
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
25 janvier 2025
17 275
11 août 2016 à 18:30
11 août 2016 à 18:30
Pour le nombre d'occurrences, c'est la fonction NB.SI qui convient ...
Nashimok
Messages postés
19
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
16 juin 2017
13 août 2016 à 12:01
13 août 2016 à 12:01
Effectivement, c'est très simple avec NB.SI, merci Raymond !
Je reviens sur mon code VBA :
j'écris ce code qui me permet de générer un graphique en fonction du nombre d'occurrences de chaque phrase de la feuille de référence ("Risques élevés") quand je clique sur un bouton.
Etant donné que la feuille de référence est amenée à être modifiée régulièrement, pas toujours avec le même nombre de lignes, je fais une boucle en VBA pour être sûre d'avoir toutes les lignes à chaque fois.
J'ai fait un enregistrement de macro avec la fonction NB.SI pour pouvoir mettre le code correspondant dans ma boucle, mais je ne comprends pas bien comment la fonction COUNTIF fonctionne ...
Dans mon tableur excel, j'écris :
et le code qui sort est :
Je ne comprends pas bien à quoi correspond la partie C[-5]... Quel est le rapport avec ma colonne G que j'ai utilisée dans mon tableur ?!
Je reviens sur mon code VBA :
j'écris ce code qui me permet de générer un graphique en fonction du nombre d'occurrences de chaque phrase de la feuille de référence ("Risques élevés") quand je clique sur un bouton.
Etant donné que la feuille de référence est amenée à être modifiée régulièrement, pas toujours avec le même nombre de lignes, je fais une boucle en VBA pour être sûre d'avoir toutes les lignes à chaque fois.
J'ai fait un enregistrement de macro avec la fonction NB.SI pour pouvoir mettre le code correspondant dans ma boucle, mais je ne comprends pas bien comment la fonction COUNTIF fonctionne ...
Dans mon tableur excel, j'écris :
=NB.SI('Risques élevés'!G:G;"901")
et le code qui sort est :
ActiveCell.FormulaR1C1 = "=COUNTIF('Risques élevés'!C[-5],""901"")"
Je ne comprends pas bien à quoi correspond la partie C[-5]... Quel est le rapport avec ma colonne G que j'ai utilisée dans mon tableur ?!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
>
Nashimok
Messages postés
19
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
16 juin 2017
13 août 2016 à 19:08
13 août 2016 à 19:08
Bonjour,
C[-5] est une référence relative que l'enregistreur a déduit de ta position pour créer ta fonction.
Tu dois l'avoir en colonne L et donc la colonne -5 est G
si tu mets la formule ainsi tu as des références absolues et cela devrait fonctionner :
Cependant, pour éviter toute la gymnastique avec les fonctions en anglais et les références en L1C1, je te conseille d'écrire :
ce qui abouti au même résultat mais c'est excel qui se débrouille avec ses traductions !
n'est-ce pas plus simple ?
C[-5] est une référence relative que l'enregistreur a déduit de ta position pour créer ta fonction.
Tu dois l'avoir en colonne L et donc la colonne -5 est G
si tu mets la formule ainsi tu as des références absolues et cela devrait fonctionner :
ActiveCell.FormulaR1C1 = "=COUNTIF('Risques élevés'!C7,""901"")"
Cependant, pour éviter toute la gymnastique avec les fonctions en anglais et les références en L1C1, je te conseille d'écrire :
ActiveCell.FormulaLocal = "=NB.SI('Risques élevés'!G:G;""901"")"
ce qui abouti au même résultat mais c'est excel qui se débrouille avec ses traductions !
n'est-ce pas plus simple ?
Nashimok
Messages postés
19
Date d'inscription
mercredi 10 août 2016
Statut
Membre
Dernière intervention
16 juin 2017
17 août 2016 à 18:40
17 août 2016 à 18:40
Merci pour l'astuce !
Comme j'ai eu une coupure d'internet, j'ai fini par trouver une autre solution très similaire qui fonctionne aussi (un peu un mix de tes 2 solutions finalement).
Puisque je voulais attribuer la valeur du nombre d'occurrences à une variable occ, j'ai écrit en VBA :
mais peut-être que c'est trop compliqué ? Je suis preneuse de toute astuce pour simplifier mon code !
En tout cas, cette méthode me permet de supprimer un paquet de lignes de code et donc de simplifier le tout, ça c'est top !
Et justement, j'aimerais appliquer cette méthode à un autre critère pour créer un autre graphique.
Sauf que ce critère est la présence d'un chiffre dans ma cellule : si il y a un 1 dans le texte, occ=occ+1. Le 1 (ou 2 ou 16, puisque j'ai 16 catégories) se trouve toujours en première position dans le texte.
À l'heure actuelle, j'ai écrit les choses comme suit :
J'aimerais appliquer la fonction COUNTIF, sauf que je ne trouve pas comment faire pour écrire l'équivalent du
dans le COUNTIF ...
Une idée ?
Comme j'ai eu une coupure d'internet, j'ai fini par trouver une autre solution très similaire qui fonctionne aussi (un peu un mix de tes 2 solutions finalement).
Puisque je voulais attribuer la valeur du nombre d'occurrences à une variable occ, j'ai écrit en VBA :
occ=Application.CountIf(Worksheets("Risques élevés").Range("G:G"), "901")
mais peut-être que c'est trop compliqué ? Je suis preneuse de toute astuce pour simplifier mon code !
En tout cas, cette méthode me permet de supprimer un paquet de lignes de code et donc de simplifier le tout, ça c'est top !
Et justement, j'aimerais appliquer cette méthode à un autre critère pour créer un autre graphique.
Sauf que ce critère est la présence d'un chiffre dans ma cellule : si il y a un 1 dans le texte, occ=occ+1. Le 1 (ou 2 ou 16, puisque j'ai 16 catégories) se trouve toujours en première position dans le texte.
À l'heure actuelle, j'ai écrit les choses comme suit :
If UCase(Cells(ligne, "A")) Like "1-" & "*" Then nb_récep_expé = nb_récep_expé + 1 End If
J'aimerais appliquer la fonction COUNTIF, sauf que je ne trouve pas comment faire pour écrire l'équivalent du
Like "1-" & "*"
dans le COUNTIF ...
Une idée ?
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
17 août 2016 à 21:58
17 août 2016 à 21:58
Bonjour,
mais peut-être que c'est trop compliqué ?
non c'est très bien !
j'aimerais appliquer cette méthode à un autre critère
Si j'ai compris ton but tu peux écrire :
mais peut-être que c'est trop compliqué ?
non c'est très bien !
j'aimerais appliquer cette méthode à un autre critère
Si j'ai compris ton but tu peux écrire :
nb_récep_expé = Application.CountIf(Worksheets("Risques élevés").Range("A:A"), "1-*")
11 août 2016 à 00:57