Rechercher cellules non vides d'une colonne et décaler

Bonjour,

J'ai un fichier me permettant de suivre les formations du personnel d'une entreprise. Dans la première colonne il y a le nom de tous les salariés puis chaque colonne correspond à une formation. Lorsque la personne a été formée, la cellule correspondante contient la date de formation.

Je souhaite, dans un autre onglet, avoir un récapitulatif par formation. C'est à dire avoir le nom de la formation et, dessous, la liste de toutes les personnes qui y sont formées. Je sais, il suffirait de filtrer sur la colonne et ainsi avoir toutes les personnes formées, mais l'entreprise pour laquelle je travaille tient absolument à avoir une feuille imprimable avec l'intitulé de la formation et la liste des personnes en dessous....

J'ai essayé avec PETITE.VALEUR (en faisant augmenter k de ligne en ligne) + DECALER, ou en mélangeant INDEX, QUIV, RECHERCHEV etc... Bref, je n'ai rien trouvé, auriez-vous une solution à mon problème SVP ?

Je pense que ça pourrait marcher avec DECALER, si seulement j'arrivais à obtenir la référence, et non la valeur, des cellules trouvées par la fonction PETITE.VALEUR...

Merci beaucoup d'avance !!

Margallo

(Je suis désolée mais le fichier contenant les informations de l'entreprise, je ne peux pas l'envoyer, j'en ferai un "faux" si ma question n'est pas claire)

bonjour

il faut faire un faux pour info

Voici le genre de fichier que j'ai (avec beaucoup plus de colonnes et de lignes....)

Onglet 1 : Suivi des formations

Onglet 2 : Récapitulatif, dans lequel je souhaiterais avoir toutes les personnes formées pour la formation sélectionnée

Si c'est trop compliqué (sans VBA) en sélectionnant la formation, j'aurais au moins aimé avoir, dans le deuxième onglet, une colonne par formation, avec dessous la liste des personnes formées = liste des cellules non vides

Merci d'avance !

attention il faut activer les macros

si la solution ne te convient pas ou si tu as des questions, contactes moi

161stage.xlsm (25.26 Ko)

Merci de ta réponse ! Le résultat est exactement ce que j'attends !!!

Sauf que... je suis un peu (carrément ?) une glandue des macros et n'arrive pas à l'adapter à mon fichier :/ Il me suffit de nommer mon tableau "t_formation" et de remplacer "bilan" et "saisie" par mes noms d'onglets ?

Et il n'y a pas une façon de faire sans macro ?

Merci en tous cas !

Bonjour,

Autre proposition à tester (formule matricielle).

soit tu changes le nom de tes onglets

soit tu modifies le code comme indiqué ci-dessous

Public Sub recap()

' changer "bilan" par le nom de ton onglet

Sheets("bilan").Select

Cells.Select

Selection.ClearContents

nb_lignes = Range("t_formation").Rows.Count

premiere_ligne = Range("t_formation[#headers]").Row

nb_colonnes = Range("t_formation").Columns.Count

col_ecrit = 1

For col = 2 To nb_colonnes

' changer "saisie" par le nom de ton onglet

' changer "bilan" par le nom de ton onglet

Sheets("bilan").Cells(1, col - 1) = Sheets("saisie").Range("t_formation[#headers]").Columns(col)

ligne_ecrit = 2

For ligne = 1 To nb_lignes

' changer "saisie" par le nom de ton onglet

If Sheets("saisie").Range("t_formation").Cells(ligne, col) <> "" Then

' changer "saisie" par le nom de ton onglet

' changer "bilan" par le nom de ton onglet

Sheets("bilan").Cells(ligne_ecrit, col_ecrit) = Sheets("saisie").Range("t_formation").Cells(ligne, 1)

ligne_ecrit = ligne_ecrit + 1

End If

Next ligne

col_ecrit = col_ecrit + 1

Next col

End Sub

je te joins un nouveau fichier stage et 3 autres fichiers pour que tu puisse utiliser la notion de tableau nommé

39stage.xlsm (24.75 Ko)

Waouh merci beaucoup pour vos réponses très complètes, j'ai pu avoir exactement ce que je voulais en bidouillant un peu, c'est parfait !

(Sur la réponse la plus adaptée à votre besoin !)

Rechercher des sujets similaires à "rechercher vides colonne decaler"