Mystérieuse formule pour réorganiser un tableau ??
Bonjour,
Je suis un peu en peine pour trouver une formule qui me permette rapidement de lier deux tableaux qui ont présentations différentes.
Sur le premier, la présentation est classique avec une longue liste de Noms. Sur le second, j'aimerais que les noms apparaissent dans une seule cellule selon différents critères.
Pour expliquer : des personnes invités à différentes sessions ont certaines qualités (artistes, personnalités, professeur) et selon chaque session seront témoin ou consultant. J'aimerais que tous les noms apparaissent automatiquement dans une cellule selon leur caractéristiques.
J'ai créé un fichier type avec quelques noms (en réalité il y en a plus de 150, d'où ma volonté de trouver une formule pour automatiser le tableau). J'ai essayé avec des TCD mais c'est impossible puisqu'ils n'acceptent que des valeurs numériques. Et j'ai testé la formule EQUIV dans tous les sens et je n'arrive à avoir ce que je veux...
Pour l'exemple joint, il faudrait par exemple mettre une formule en N4 et que le résultat soit les noms concaténés : "Ducasse, Dutreuil". Soit tous les "professeurs" en "conseil" pour la "session 1".
Je vous joins donc un tableur pour que vous puissiez voir mieux ce que je recherche !
Merci beaucoup de votre aide !! Hésitez pas à me demander si vous voulez certaines précisions !
Smogkin
Bonjour,
Un essai avec une macro (clique sur le bouton macro dans le fichier ci-dessous)
Sub macro()
Dim nom As String
Dim qualite As String
Dim place As String
'boucle sur place
For i = 2 To Range("B5000").End(xlUp).Row
nom = Cells(i, 2)
qualite = Cells(i, 3)
place = Cells(i, 4)
If place = Range("L2") Then 'si place est conseil
For j = 2 To 4 'on boucle sur qualité
If Cells(j, 13) = qualite Then
For m = 1 To 6 'bloucle session
If Cells(i, m + 4) = True Then
Cells(j, m + 13) = Cells(j, m + 13) & nom & vbCrLf
End If
Next
End If
Next
Else 'si place est témoin
For k = 5 To 7 'on boucle sur qualité
If Cells(k, 13) = qualite Then
For m = 1 To 6 'bloucle session
If Cells(i, m + 4) = True Then
Cells(k, m + 13) = Cells(k, m + 13) & nom & vbCrLf
End If
Next
End If
Next
End If
Next 'fin boucle place
End Sub
cdt
Merci beaucoup de votre réponse rapide,
je vais adapter cette solution à mon tableau complet !
Bien cordialement