Xl 2007 -transfert données dans tableau unique

Salut,

Je bidouille sous excel et suis face à un problème:

Dans mon classeur j'ai des feuilles nominatives qui font état d'un nombre d'heures de présence sous 3 critères en fonction d'un numéro de semaine.

Je souhaiterais récupérer les données des différentes feuilles nominatives sous un tableau unique dans une nouvelle feuille.

ci joint le fichier de base (où le transfert est fait manuellement!!! )

49etat-horaire.rar (10.66 Ko)

MErci

Lywood 8) 8) 8)

Bonsoir,

Ci-joint le fichier avec une formule :

=CNUM(INDIRECT(ADRESSE(COLONNE();DROITE($B2;1)+1;;;$A$2)))

Explications:

COLONNE() donne le n° de la colonne où je suis donc 3 pour la colonne C. La colonne C correspond à la semaine 36, D vaut 4 pour la semaine 37. C'est justement le n° des lignes sur les feuilles avec les prénoms.

DROITE($B2;1)+1 va chercher le texte Réunion 1 et ne garde que 1 caractère à droite donc le chiffre 1, on fait +1 ce qui fait........ suspens.... oui 2. 2 ça correspond à B et B c'est la colonne de la réunion 1 sur la feuille Bernard.

La réunion 2 c'est 2+1 = 3 et la réunion 2 est en colonne 3.

$A$2 c'est le prénom, c'est aussi le nom de la feuille. C'est le point faible de la formule car j'ai dû mettre pour Bernard, Sylvie A6, A10 et A14 à la main car il y a des cellules fusionnées, il n'y a pas beaucoup de prénoms donc ça va. Sinon on aurait dû utilise index, equiv et des zones nommées.

ADRESSE transforme ce que j'ai récupéré avec colonne, droite et a2 en une référence de cellule. 2 et 5 (5 = colonne E) et Bernard veut dire que je cherche Bernard!E2.

INDIRECT permet de récupérer ce qui est en Bernard!E2 car on veut la valeur et pas une adresse de cellule.

CNUM convertit cette valeur en nombre pour que tes sommes au bout du tableau fonctionnent, la faute à INDIRECT qui transforme cette valeur en texte.

Pour finir j'ai mis un format de cellule personnalisé 0;;; pour masquer les 0 qui apparaissent quand il n'y avait rien à récupérer, par exemple la semaine 40, réunion 1 pour Fabienne on ne voit rien alors qu'Excel a récupéré 0.

A+

52etat-horaire.zip (18.04 Ko)

Bonjour à tous,

Solution VBA

Sub Récap()
Dim LSh%, i%, Sh$
'Macro par Claude Dubois pour "lywood" Excel-Pratique le 02/10/10
    Application.ScreenUpdating = False
    Sheets("récap").Activate
    LSh = 2 'départ ligne "récap"
    For i = 1 To Worksheets.Count
        If Sheets(i).Name <> "récap" Then
            Sh = Application.Proper(Worksheets(i).Name)
            With Sheets(Sh)
                Cells(LSh, 1) = Sh
                .Range("b3:d54").Copy
                Cells(LSh, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=True

                '--- réunion4 (somme "prépa" + "action") ---
                .Range(.Cells(3, "i"), .Cells(54, "i")) _
                = "=if(sum(e3:f3)>0,sum(e3:f3),"""")"
                .Range(.Cells(3, "i"), .Cells(54, "i")).Copy
                Cells(LSh + 3, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=True
                Application.CutCopyMode = False
                .Range(.Cells(3, "i"), .Cells(54, "i")).ClearContents
            End With
        End If
        LSh = LSh + 4
    Next
    Application.Goto Range("a1"), Scroll:=True
End Sub

Amicalement

Claude

62lywood-recap.zip (24.13 Ko)

Merci à vous deux

Je regarde tout ça

J'avoue que je n'aurais JAMAIS trouvé tout seul.

Lywood

si ok, merci de solder le poste, c'est ici

a resolu2
Rechercher des sujets similaires à "2007 transfert donnees tableau unique"