Affichage du contenu de plusieurs cellules dans une seule

Bonjour,

J'ai une liste de données avec des prénoms dans un onglet A.

Parmi cette liste 3 critères sont partagés par les répondants. en fonction de ces réponses les prénoms doivent se transmettre dans un tableau dans un onglet B.

Sauf qu'une seule cellule doit contenir plusieurs prénoms et non pas 1 seul tel est le cas actuellement : j'ai utilisé une fonction if, qui me copie le dernier prénom de la liste correspondant aux conditions sélectionnées.

J'ai besoin de votre aide,

Merci Beaucoup,

Diane

Bonjour Diane,

On ne peut pas t'aider valablement si on ne visualise pas ton problème !

Comment sont présentées les données, quels sont les critères, où doit s'afficher le résultat, etc.

Le mieux serait donc que tu joignes un fichier qui illustre ce dont tu disposes (avec des exemples des résultats attendus). Supprime les données qui auraient un caractère confidentiel et précise l'étendue de la "zone à explorer" (10 lignes, 2000, ...)

Bonjour,

Ci joint un document qui correspond à ce que je cherche à avoir.

Dans l’onglet Données figure 4 colonnes, chaque ligne correspond à des données insérées par 1 individu. (nombre de ligne maximum possible).

En fonction des combinaison des données dans les colonnes C et D le prénom de la personne doit appara^tre dans la matrice dans l'onglet "Innovationcouverture".

La combinaison 30 et 70% étant la meilleure => le prénom de la personne se situera dans la case F1 et le pire c'est la combinaison 10 et 30 % et le prénom de la personne Aapparaitra dans la case B5 de l'onglet "Innovationcouverture".

Et le plus important c'est d'avoir la totalité des prénoms (correspondant aux même critères) dans une même case dans l'onglet "innovationcouverture" ( rf: Diane, william, Albert , Richard ).

Dans le doc ci-joint j'ai rajouté à la main le prénom des personnes à partir des critères.

Ce que je souhaite avoir à travers le code VBA c'est la combinaison de plusieurs prénoms dans une seule case.

Merci d'avance,

Diane

16vba.xlsm (34.27 Ko)

Bonjour Diane,

Tu parles de 4 colonnes (dont C & D) ... mais ton exemple n'en contient que 3 ?

Dans ta matrice, en feuille "Innovationcouverture", ce serait plus simple si tu précisais quelles colonnes et quelles lignes correspondent à quelles valeurs ? Le degré d'innovation est en ordre croissant et la couverture internet en ordre décroissant (ou l'inverse) ?

Bonjour,

Oui c'est la colonne 3. Et concernant la matrice peu importe quel ordre on considère moi ce qui m'intéresse c'est de pouvoir avoir plusieurs prénoms dans un même cellule en fonction des réponses (c à d si 10 personnes répondent 10 et 50% il faut que les 10 prénoms apparaissent pas la cellule F5).

L'endroit où ils apparaissent n'est pas une priorité mais la priorité c'est d'avoir tous les prénoms appartenant à une cellule dans cette cellule de la matrice en ayant un nombre infini de personne dans la liste principale.

Merci d'avance

L'endroit où ils apparaissent n'est pas une priorité

Peut-être pas, mais ça m'aurait permis d'être certain d'avoir bien compris ! J'avais bien Alex et Rachelle dans les mêmes cellules que toi, mais pas le groupe des 4 !?

Un essai avec une fonction personnalisée, illustré dans le classeur joint: en B2, la syntaxe est

=laMatrice(Données!$A$2:$A$20;B$1;$A2)

J'ai ajouté au-dessus du tableau et à sa gauche les valeurs des "degrés d'innovation" et de la "couverture internet" ... tu modifieras comme tu veux: le résultat des fonctions devrait se mettre à jour.

La plage Données!$A$2:$A$20 peut-être adaptée (j'ai prévu ici quelques cellules de plus que le nombre de noms réellement encodés), mais

en ayant un nombre infini de personne dans la liste principale

... un nombre infini c'est peut-être un peu beaucoup

Merci pour toutes ces précisions mais j'ai une question par rapport au "ch" que tu inclus dans le code je vois pas à quoi ça sert vraiment.

Et une autre question faut-il déclarer ou pas les worksheet, workbook, et toutes les variables qu'on utilise au début de chaque fonction ?

Et si je veux garder ma sub et ne pas inclure de matrice c'est possible ? A partir de ce code :

" Sub Matrice()

Dim A As Worksheet

Dim c As Worksheet

Dim n As Integer

Dim i As Integer

Set A = Worksheets("Données")

Set c = Worksheets("Innovaioncouverture")

n = A.UsedRange.Rows.Count

For i = 1 To n

If A.Cells(i + 1, 7).Value = "1" And A.Cells(i + 1, 8).Value = "1" Then

With c.Cells(5, 3)

.Value = A.Cells(i + 1, 1)

.Font.Color = -99999999

End With

End If

Next i

"

Et le code qui me manquerait serait le then ch= ch & " _" pour combiner plusieurs prénoms dans une cellule.

Merci.

Bonsoir,

Après 10 jours, pas facile de se replonger dans ta demande ... Tu parles de "garder ta sub", mais dans ton fichier, il n'y en avait pas !?

Je ne comprends pas non plus "ne pas inclure de matrice" ?

J'ai proposé une solution en fonction de tes explications ... cette solution ne convient pas ? Tu as testé, mais pas obtenu le résultat attendu ? Pourquoi modifier la demande aujourd'hui ?

Je ne comprends pas bien non plus le code que tu proposes: tout sera collé dans la cellule C5 de ta feuille "Innovationcouverture", puisque ton With c.Cells(5, 3) ne varie jamais Par ailleurs, la fonction personnalisée permettait la mise à jour en temps réel de chaque modif que tu pouvais faire ... ton bout de code ne fait rien de tel.

Bref, j'en suis à me demander si j'ai travaillé pour rien

Désolé pour le retard j'étais en vacance!

Mais pour une cellule j'ai mis je c.cells(3,5) j'écrirai chaque code sur une ligne différente genre with c.cells (5,1)...

C'est sure qu'en terme de matrice ça sera plus simple, mais ce que je comprend pas c'est ne pas déclarer des onglets ou des workbook au début ?!

Et si c'est possible de m'expliquer les différents composantes de cette matrice si je vais la multiplier sur plusieurs onglets.

Merci

Rechercher des sujets similaires à "affichage contenu seule"