Formule, tableau croisé ou VBA pour extraire des données en tête de colonne

Bonjour,

Actuellement entrain de créer un planning permettant aux divers collaborateurs de voir ses horaires affichés de manières individuels à partir d'un planning collective.

Je souhaite qu'à partir d'un nom indiqué dans le planning collectif, feuille "planning collectif" sur une ou plusieurs plage dans la journée, celle-ci soit retranscrite dans le planning individuel automatiquement sur la page suivante.

Ayant tenté d'utiliser la formule =SI(NB.SI.ENS(....SI(NB.SI.ENS(....SI(NB.SI.ENS(....SI(NB.SI.ENS(....)))), je me suis rendu compte que la formule pouvez devenir vraiment trop longue et créer des erreurs.

Je suis à l'ecoute de toute vos proositions (tableau croisé dynamique, VBA...etc).

Merci par avance,

Leeroï

Bonjour et bienvenu sur le forum

Ci joint ma solution par macro (VBA)

A+ François

Whaaaa quel efficacité!!!

Merci beaucoup!

Je me permet de vous faire une nouvelle demande. En effet, lorsque je lance le traitement du planning collectif, l'ensemble des formules des colonne "Heures" et "Pause" du tableau planning individuel s'efface. Est-il possible de remédier à cela.

Merci par avance,

Il suffit de demander...lol

A+ François

Bonjour,

Un Bug apparait lorsque je clique sur traitement:

Sub traitement()
Dim lig As Integer, col As Integer, sh As Worksheet, pos, jour As String, d
Set sh = Sheets("Planning individuel")
Set d = CreateObject("Scripting.Dictionary")
d("Lundi") = 2: d("Mardi") = 6: d("Mercredi") = 10: d("Jeudi") = 14: d("Vendredi") = 18: d("Samedi") = 22: d("Dimanche") = 26
sh.Range("B3:C19,F3:G19,J3:K19,N3:O19,R3:S19,V3:W19,Z3:AA19").ClearContents
For lig = 5 To Range("A" & Rows.Count).End(xlUp).Row
For col = 2 To Cells(3, Columns.Count).End(xlToLeft).Column
If Cells(1, col).Value <> "" Then jour = Cells(1, col).Value
If Cells(lig, col).Value <> "" Then
pos = Application.Match(Cells(lig, col), sh.Columns(1), False)
If sh.Cells(pos, d(jour)).Value = "" Then sh.Cells(pos, d(jour)).Value = Cells(3, col)
sh.Cells(pos, d(jour) + 1).Value = Cells(4, col)
End If
Next
Next
End Sub

Puis-je abuser et te redemander un coup de pouce?

Merci par avance,

Leeroï

Bonjour

C'est que l'appli n'a pas trouvé un nom... j'ai ajouté un gestionnaire d'erreur...

A+ François

Rechercher des sujets similaires à "formule tableau croise vba extraire donnees tete colonne"