XL 2016 Dénomination suivant validation de colonnes

KyoshiroMibu

XLDnaute Nouveau
Bonjour le forum,

Je reviens avec un nouveau problème.

Je ne connais pas la formule, please, help me.
Dans le fichier joint je montre le cas de figure, ce que je recherche et j'ai laisser la colonne vide pour y joindre la formule adapté.

Merci d'avance ;)
 

Pièces jointes

  • Report.xlsx
    8.5 KB · Affichages: 4
Solution
Pour valider matriciellement une formule placer le curseur dans la barre de formule et appuyer simultanément sur les 3 touches Ctrl Maj (Shift) et Entrée (Enter).

Des accolades apparaissent alors à gauche et à droite de la formule.

Noter que la fonction JOINDRE.TEXTE est apparue avec la version Excel 2016 donc pas de problème pour vous.

Pour les versions antérieures d'Excel il faudrait utiliser cette fonction VBA :
VB:
Function Joindre(txt$, sep$, ref As Range, plage As Range)
If Application.CountIf(plage, "<>" & txt) = 0 Then Joindre = "Tous": Exit Function
Dim i&
txt = LCase(txt) 'minuscules
For i = 1 To plage.Count
    If LCase(plage(i)) = txt Then Joindre = Joindre & sep & ref(i) 'concaténation
Next
Joindre = Mid(Joindre...

KyoshiroMibu

XLDnaute Nouveau
Bonjour,

Merci pour ton retour,
Peux-tu m'expliquer ce qu'est une formules matricielle?

Elle marche bien dans mon tableau quand toutes les colonnes ont un "x" mais pas quand seulement quelques-unes sont concernées.

Sa m'affiche #NOM? .... Je comprend pas pourquoi....
EXCEL_KOHK3HkmiG.png


J'aimerai pouvoir y joindre mon fichier seulement des données confidentielles en font partie ce qui m'empêche de le faire....

Est-ce possible que le problème vienne du fait que les cellules marqués d'un X soit des formules =rechercheV() ?

Merci pour vos enseignements et votre temps.
 

job75

XLDnaute Barbatruc
Pour valider matriciellement une formule placer le curseur dans la barre de formule et appuyer simultanément sur les 3 touches Ctrl Maj (Shift) et Entrée (Enter).

Des accolades apparaissent alors à gauche et à droite de la formule.

Noter que la fonction JOINDRE.TEXTE est apparue avec la version Excel 2016 donc pas de problème pour vous.

Pour les versions antérieures d'Excel il faudrait utiliser cette fonction VBA :
VB:
Function Joindre(txt$, sep$, ref As Range, plage As Range)
If Application.CountIf(plage, "<>" & txt) = 0 Then Joindre = "Tous": Exit Function
Dim i&
txt = LCase(txt) 'minuscules
For i = 1 To plage.Count
    If LCase(plage(i)) = txt Then Joindre = Joindre & sep & ref(i) 'concaténation
Next
Joindre = Mid(Joindre, Len(sep) + 1)
End Function
Le code doit être placé impérativement dans un module standard (Alt+F11 => Module1).

Voyez le fichier joint et la formule en K2 =Joindre("x";"_";A$1:I$1;A2:I2)

à valider normalement.
 

Pièces jointes

  • Report VBA(1).xlsm
    16.7 KB · Affichages: 2

KyoshiroMibu

XLDnaute Nouveau
Bonjour Job75

Je suis bien sous excel 2016
EXCEL_ZqVgG33mCz.png


Je ne comprend pas comment créer une fonction VBA dans excel. Quand je fais (Alt+F11) il m'ouvre un nouveau fichier

Ensuite je peux pas l'enregistrer car mon classeur n'accepte pas les macros.... Oulalala j'avais dit que j'étais nul en macro, en fait je suis pas nul, je suis ignare sur le sujet....

La faut m'expliquer comment on fait pour insérer des macros et les utiliser....

Je sais, je deviens chiant la .... Mais personne ne née avec la science infuse.
 

job75

XLDnaute Barbatruc
Bon j'ai vu sur le forum que certains sur Excel 2016 ne peuvent pas utiliser JOINDRE.TEXTE.

Il vous faut donc utiliser la solution VBA de mon post #4.

Votre fichier doit être enregistré avec l'extension .xlsm => Classeur Excel prenant en charge les macros.
 

patricktoulon

XLDnaute Barbatruc
Bonjour @job75 tu pourrais peut être garder ta formule en remplaçant la partie jointexte par la mienne
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35