Bonjour et Bonne Année 2018
Question?
Dans un tableau, plusieurs colonnes A C E (etc..) avec des noms "X, Y, Z ......", je souhaite regrouper ces noms dans une même colonne les uns en dessous des autres.
J'ai trouvé beaucoup de réponses, mais toujours très compliqué à mettre en oeuvre.
Y a-t-il une fonction simple (index, nbval, etc....)?
Merci de votre aide.
@CATPLUS
Il y a une fonction simple pour nous aider à t'aider
Cliquer sur le bouton Téléverser un fichier pour joindre un fichier Excel
(qui nous permettra d'y voir plus clair et sera la base sur laquelle faire nos essais de formules et/ou macros
@CATPLUS
Pour info
La fomule de N. BISSON implique une macro
Par conséquent, puisque j'ai mis le nez dans VBE, je publie
(même si cela n'a pas l'efficience de N.BISSON)
VB:
Sub Test()
Dim c As Range, z$, t
For Each c In Range("H5:H24,J5:J24,L5:L24,N5:N24,P5:P24,R5:R24")
If Len(c) > 2 Then
z = z & "²" & c
End If
Next
t = Split(Mid(z, 2, Len(z) - 1), "²")
[S3].Resize(UBound(t) + 1) = Application.Transpose(t)
End Sub
Elle est simple mais bien plus difficile à comprendre...
On évite la multiplication des imbrications : même si le nombre de colonnes à traiter est important elle fonctionnera sur Excel 2003 et versions antérieures où le nombre des imbrications est limité à 8.
Son seul intérêt est d'entrer la formule en colonne S dans la plage strictement nécessaire :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim h&
h = Application.Sum(Range([QTs], [QTs].End(xlToRight)))
If h < 1 Then h = 1 'sécurité
Application.EnableEvents = False 'désactive les évènements
[Deb].Resize(h) = [Deb].Formula 'recopie la formule en S5 vers le bas
[Deb].Offset(h).Resize(Rows.Count - h - [Deb].Row + 1).ClearContents 'RAZ en dessous
Application.EnableEvents = True 'réactive les évènements
End Sub
Fichier joint, voyez les cellules nommées QTs et Deb ainsi que la MFC en colonne S.