Identifiant associé à une phrase dans une liste déroulante
Résolu
Nashimok
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
pour un document de travail, j'ai fait une liste déroulante de phrases qui me permet de choisir dans ma colonne G la phrase qui convient.
Pour traiter mes données, je suis en train d'écrire un code en VBA qui me permettra de compter le nombre d’occurrence de chaque phrase. Dans ce code, pour éviter de réécrire toutes les phrases, j'aimerais utiliser des identifiants associés à chaque phrase.
(Comme j'ai déjà tout le travail de fait avec les phrases, ça m'arrangerait de ne pas avoir à reprendre chaque phrase pour lui associer son identifiant ... sachant que le classeur compte 16 feuilles ...)
Ce que j'aimerais faire, c'est que lorsque je sélectionne une phrase dans la liste déroulante, le code associé apparaisse automatiquement dans la colonne précédente (colonne F dans mon cas).
En PJ, mes références pour les phrases et leurs identifiants, et mon tableur avec la colonne en liste déroulante.
Merci d'avance pour votre aide !


pour un document de travail, j'ai fait une liste déroulante de phrases qui me permet de choisir dans ma colonne G la phrase qui convient.
Pour traiter mes données, je suis en train d'écrire un code en VBA qui me permettra de compter le nombre d’occurrence de chaque phrase. Dans ce code, pour éviter de réécrire toutes les phrases, j'aimerais utiliser des identifiants associés à chaque phrase.
(Comme j'ai déjà tout le travail de fait avec les phrases, ça m'arrangerait de ne pas avoir à reprendre chaque phrase pour lui associer son identifiant ... sachant que le classeur compte 16 feuilles ...)
Ce que j'aimerais faire, c'est que lorsque je sélectionne une phrase dans la liste déroulante, le code associé apparaisse automatiquement dans la colonne précédente (colonne F dans mon cas).
En PJ, mes références pour les phrases et leurs identifiants, et mon tableur avec la colonne en liste déroulante.
Merci d'avance pour votre aide !


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
- Vérifier si une phrase est correcte - Accueil - Google
- Liste déroulante google sheet - Accueil - Guide bureautique
2 réponses
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)
Raymond PENTIER
Messages postés
58989
Date d'inscription
Statut
Contributeur
Dernière intervention
17 353
... ou avec la fonction INDEX
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 !
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 ?!
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 ?
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 ?