Copier plage de valeur sur une autre feuille selon 1 critère

Bonjour,

J'ai besoin d'aide svp pour recopier des plages de cellules d'une feuille à une autre

Je m'explique

Voici ci joint un classeur avec 2 feuilles de calculs

- "2020" : planning des salariés annuel => dans la colonne A on trouve le numéro de semaine (le planning tourne sur 4 semaines, donc de 1 à 4) - en colonne B on retrouve le numéro de semaine de l'année

- Trame de base sur 4 semaines (n° de semaine de 1 à 4 dans la colonne D)

Je voudrais recopier dans la feuille "2020" les valeurs de la feuille "trame de base" selon le numéro de semaine (de 1 à 4 )

Par exemple :

Dans A3 de la feuille "2020" est noté 2

Donc recopier dans les cellules I3:CA9 de "2020"

les valeurs des cellules I10:CA16 de la feuille "Trame de base" car la valeur de D10 est 2 comme la valeur recherchée

Puis

Dans A10 de la feuille "2020" est noté 3

Donc recopier dans les cellules I10:CA16 les valeurs des cellules I17:CA23 car la valeur de D17 est 3 comme la valeur recherchée

Puis pour toute l'année

Pourriez vous m'aider svp ?

J'ai essayé avec des formules mais je me perds

J'essaie en vba mais je ne trouve pas la bonne méthode

Je vous serais très reconnaissant

Cordialement

9test1.xlsm (909.71 Ko)

Slt sylvainpyc, slt le Forum

un essai

Sub CopierPlage()
    Dim s As Long
    Dim wrsSource As Worksheet
    Dim wrsTarget As Worksheet

    Set wrsSource = Worksheets("Trame de base")
    Set wrsTarget = Worksheets("2020")
    Application.ScreenUpdating = False

    With wrsSource
        For s = 10 To .Cells(Rows.Count, "D").End(xlUp).Row Step 7

            .Range("I" & s & ":CA" & s + 6).Copy wrsTarget.Range("I" & s - 7)
        Next s
    End With

    Application.ScreenUpdating = True
End Sub

Bonne nuit

bonjour,

j'étais en vacances, je n'ai pas pu regarder avant, l'ordi est au travail

Je vous remercie de votre aide

Votre code fonctionne mais ne remplit que les 3 premières semaines de la feuille 2020 (semaine 2,3 et 4 mais pas la semaine 1)

comme sur le fichier ci joint

Je ne comprends pas votre code => pourries vous svp m'expliquer votre code?

Pour avoir la semaine 1 j'ai essayé de corriger s=10 par s=3

For s = 10 To .Cells(Rows.Count, "D").End(xlUp).Row Step 7

mais j'ai un message d'erreur

Comment faire svp pour reproduire ce code sur toute la feuille 2020 en prenant en compte les 4 semaines ?

PS : j'ai sur ce classeur une nouvelle feuille qui se nomme "conges"

J'essaie de récupérer sur chaque ligne le nom du salarié, la date de début et de fin et d’insérer les congés dans la feuille 2020 en insérant le type (ca ou cs ou ...) à la place des horaires.

J'ai commencé mon code mais ca ne fonctionne pas encore

Sub conges()
Derlig = 0
Sheets("Conges").Activate
    Derlig = Range("A" & Rows.Count).End(xlUp).Row
    MsgBox Derlig
        For i = 4 To Derlig
            nom = Cells(i, 1)
            typ = Cells(i, 2)
            Ddeb = Cells(i, 3)
            Dfin = Cells(i, 4)
            Call EnregConges(nom, typ, Ddeb, Dfin)
        Next i
End Sub

Sub EnregConges(nom, typ, Ddeb, Dfin)
MsgBox nom & " - " & typ & " - " & Ddeb & " - " & Dfin
Sheets("2020").Activate

    Set Plage2 = ThisWorkbook.Worksheets("2020").Range("d3:d53")
        For Each cell In Plage2
            If cell.Value >= CDate(Ddeb) And cell.Value <= CDate(Dfin) Then
                col1 = cell.Column
                col = Mid(cell.Address, 2, InStr(2, cell.Address, "$") - 2)
                lig = cell.Row
                MsgBox cell.Value & " - " & cell.Row & " - " & col1 & " - " & lig
                cell(lig, col1 + 5).Select
                cell(lig, col1 + 5) = 2
            End If
        Next

End Sub

Si vous pourriez me guider svp, je vous serais très reconnaissant

Je vous remercie beaucoup de votre aide précieuse

Cordialement

9test1.xlsm (926.83 Ko)

Re

J'ai ajouté dans la feuille trame de base la semaine 1 après la semaine 4

Ce qui permet de rajouter la semaine 1 dans la feuille 2020

Je voudrais maintenant reproduire ce code pour toute l l'année de la feuille 2020.

PS : je voudrais si possible que soit vérifié que le numéro de semaine de la colonne A de la feuille 2020 corresponde au numéro de semaine de la colonne D de la feuille trame de base => en cas de changement des numeros de semaine de la colonne D de 2020 alors que les valeurs soient modifiés selon le numéro de semaine de la trame de base

Par exemple si je modifie en A3 de la feuille 2020 le numéro de semaine (par ex 3 au lieu de 2, que les horaires soient mis à jour et correspondent à la semaine 3 de la trame de base)

Je vous remercie beaucoup

Cordialement

0test1.xlsm (960.53 Ko)

Bonjour,

J'ai réglé mon pb pour insérer les congés dans ma feuille 2020

Mais je n'arrive pas à régler le premier pb :

J'ai ajouté dans la feuille trame de base la semaine 1 après la semaine 4

Ce qui permet de rajouter la semaine 1 dans la feuille 2020

Je voudrais maintenant reproduire ce code pour toute l l'année de la feuille 2020.

c'est à dire recopier dans la feuille "2020" les semaines de la feuille "trame de base" en respectant la règle suivante :

que le numéro de semaine de la colonne A de la feuille "2020" corresponde au numéro de semaine de la colonne D de la feuille "trame de base"

Pourriez vous m'aide svp ?

Je vous remercie beaucoup

Cordialement

4test34.xlsm (867.67 Ko)
Rechercher des sujets similaires à "copier plage valeur feuille critere"