Bonjour à tous
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates
sur plusieus années, dans la 2ème ligne le nom des 4 collaborateurs.
Pour des raisons d'impressions et de visualisation, je recherche une macro
qui transpose dans une nouvelle feuille le planning de la semaine.
Mon idée est de selectionner d'abord la cellule du Lundi de la semaine en
cours, en fonction de la cellule active, de copier les cellules des 7 lignes
et des 4 colonnes suivantes et enfin de faire un collage spéciale avec
"transposé" dans une nouvelle feuille.
Exemple:
La cellule active est celle correspondant à l'emploi du 2ème collaborateur
du samedi 6 décembre
Quelle ligne de macro dois-je saisir pour selectionner la plage des cellules
du Lundi 1er au Dimanche 7 décembre des 4 collaborateurs ?
Je suis particulièrement à la recherche de la commande pour selectionner ce
Lundi.
Merci d'avance à tous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Il faudrait vraiment préciser en étant clair et avec des exemples sous forme de références style A1 Ex : En B1:B10 .....blabliblabla En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates ** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs. ** On peut supposer qu'il s'agit de la plage A2:D2
D'où problème d'intersection des 2 plages....!
AV
Il faudrait vraiment préciser en étant clair et avec des exemples sous forme de
références style A1
Ex :
En B1:B10 .....blabliblabla
En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates
** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs.
** On peut supposer qu'il s'agit de la plage A2:D2
Il faudrait vraiment préciser en étant clair et avec des exemples sous forme de références style A1 Ex : En B1:B10 .....blabliblabla En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates ** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs. ** On peut supposer qu'il s'agit de la plage A2:D2
D'où problème d'intersection des 2 plages....!
AV
Philippe.R
Bonjour Gilles, En parallèle à a réponse d'Alain, ces lignes copient la selection souhaitée :
Sub copiplage() Range(ActiveCell, ActiveCell.Offset(6, 3)).Copy 'ici la suite de la macro Application.CutCopyMode = False End Sub
et pourraient te servir pour affiner ce que te donnerait l'enregistreur de macros comme base -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002
"GilSe" a écrit dans le message de news:bqr7uh$6$
Bonjour à tous Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates sur plusieus années, dans la 2ème ligne le nom des 4 collaborateurs. Pour des raisons d'impressions et de visualisation, je recherche une macro qui transpose dans une nouvelle feuille le planning de la semaine. Mon idée est de selectionner d'abord la cellule du Lundi de la semaine en cours, en fonction de la cellule active, de copier les cellules des 7 lignes et des 4 colonnes suivantes et enfin de faire un collage spéciale avec "transposé" dans une nouvelle feuille.
Exemple: La cellule active est celle correspondant à l'emploi du 2ème collaborateur du samedi 6 décembre Quelle ligne de macro dois-je saisir pour selectionner la plage des cellules du Lundi 1er au Dimanche 7 décembre des 4 collaborateurs ?
Je suis particulièrement à la recherche de la commande pour selectionner ce Lundi. Merci d'avance à tous
Gilles
Bonjour Gilles,
En parallèle à a réponse d'Alain, ces lignes copient la selection souhaitée :
Sub copiplage()
Range(ActiveCell, ActiveCell.Offset(6, 3)).Copy
'ici la suite de la macro
Application.CutCopyMode = False
End Sub
et pourraient te servir pour affiner ce que te donnerait l'enregistreur de macros comme base
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
"GilSe" <NOSWAPgilles.se@9online.fr> a écrit dans le message de
news:bqr7uh$6$1@apollon.grec.isp.9tel.net...
Bonjour à tous
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates
sur plusieus années, dans la 2ème ligne le nom des 4 collaborateurs.
Pour des raisons d'impressions et de visualisation, je recherche une macro
qui transpose dans une nouvelle feuille le planning de la semaine.
Mon idée est de selectionner d'abord la cellule du Lundi de la semaine en
cours, en fonction de la cellule active, de copier les cellules des 7 lignes
et des 4 colonnes suivantes et enfin de faire un collage spéciale avec
"transposé" dans une nouvelle feuille.
Exemple:
La cellule active est celle correspondant à l'emploi du 2ème collaborateur
du samedi 6 décembre
Quelle ligne de macro dois-je saisir pour selectionner la plage des cellules
du Lundi 1er au Dimanche 7 décembre des 4 collaborateurs ?
Je suis particulièrement à la recherche de la commande pour selectionner ce
Lundi.
Merci d'avance à tous
Bonjour Gilles, En parallèle à a réponse d'Alain, ces lignes copient la selection souhaitée :
Sub copiplage() Range(ActiveCell, ActiveCell.Offset(6, 3)).Copy 'ici la suite de la macro Application.CutCopyMode = False End Sub
et pourraient te servir pour affiner ce que te donnerait l'enregistreur de macros comme base -- Amicales Salutations
Retirer A_S_ pour répondre. XL97 / XL2002
"GilSe" a écrit dans le message de news:bqr7uh$6$
Bonjour à tous Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates sur plusieus années, dans la 2ème ligne le nom des 4 collaborateurs. Pour des raisons d'impressions et de visualisation, je recherche une macro qui transpose dans une nouvelle feuille le planning de la semaine. Mon idée est de selectionner d'abord la cellule du Lundi de la semaine en cours, en fonction de la cellule active, de copier les cellules des 7 lignes et des 4 colonnes suivantes et enfin de faire un collage spéciale avec "transposé" dans une nouvelle feuille.
Exemple: La cellule active est celle correspondant à l'emploi du 2ème collaborateur du samedi 6 décembre Quelle ligne de macro dois-je saisir pour selectionner la plage des cellules du Lundi 1er au Dimanche 7 décembre des 4 collaborateurs ?
Je suis particulièrement à la recherche de la commande pour selectionner ce Lundi. Merci d'avance à tous
Gilles
GilSe
Bonjour Alain Bonjour Philippe
Soyons plus clair: Dans la feuille "Planning" En B11:B2900 Les dates commençant le 01/01/2003 En C10:F10 Les noms des collaborateurs En C11:F2900 Leur emploi du temps (Travail, Régie, RTT, SV, RH, ...) Je souhaite, via une macro, créer une nouvelle feuille "Semaine" avec En A4:A7 Les noms des collaborateurs En B3:H3 Les dates correspondant à une semaine de travail avec en B3 le Lundi et en H3 le dimanche En B4:H7 Leur emploi du temps saisi dans la feuille "Planning" La semaine voulue dépend de la cellule active de la feuille "Planning".
Exemple: Si la cellule active est l'une d'un des collaborateurs comprise entre le Lundi 15 et le dimanche 21 décembre 2003 (Soit dans la zone C359:F365, car je n'ai aucune raison de modifier les dates en colonne B!), la macro doit créer une nouvelle feuille "Semaine" avec En A4:A7 Les noms des collaborateurs En B3:H3 Du lundi 15/12/03 au Dimanche 21/12/03 En B4:H7 Leur emploi du temps saisi dans la feuille "Planning"
Suis-je plus clair? Merci d'avance Gilles
"AV" a écrit dans le message de news:OE%
Il faudrait vraiment préciser en étant clair et avec des exemples sous forme de
références style A1 Ex : En B1:B10 .....blabliblabla En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates
** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs. ** On peut supposer qu'il s'agit de la plage A2:D2
D'où problème d'intersection des 2 plages....!
AV
Bonjour Alain
Bonjour Philippe
Soyons plus clair:
Dans la feuille "Planning"
En B11:B2900 Les dates commençant le 01/01/2003
En C10:F10 Les noms des collaborateurs
En C11:F2900 Leur emploi du temps (Travail, Régie, RTT, SV, RH, ...)
Je souhaite, via une macro, créer une nouvelle feuille "Semaine" avec
En A4:A7 Les noms des collaborateurs
En B3:H3 Les dates correspondant à une semaine de travail avec en B3 le
Lundi et en H3 le dimanche
En B4:H7 Leur emploi du temps saisi dans la feuille "Planning"
La semaine voulue dépend de la cellule active de la feuille "Planning".
Exemple:
Si la cellule active est l'une d'un des collaborateurs comprise entre le
Lundi 15 et le dimanche 21 décembre 2003 (Soit dans la zone C359:F365, car
je n'ai aucune raison de modifier les dates en colonne B!), la macro doit
créer une nouvelle feuille "Semaine" avec
En A4:A7 Les noms des collaborateurs
En B3:H3 Du lundi 15/12/03 au Dimanche 21/12/03
En B4:H7 Leur emploi du temps saisi dans la feuille "Planning"
Suis-je plus clair?
Merci d'avance
Gilles
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:OE%23dOv7uDHA.572@TK2MSFTNGP11.phx.gbl...
Il faudrait vraiment préciser en étant clair et avec des exemples sous
forme de
références style A1
Ex :
En B1:B10 .....blabliblabla
En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les
dates
** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs.
** On peut supposer qu'il s'agit de la plage A2:D2
Soyons plus clair: Dans la feuille "Planning" En B11:B2900 Les dates commençant le 01/01/2003 En C10:F10 Les noms des collaborateurs En C11:F2900 Leur emploi du temps (Travail, Régie, RTT, SV, RH, ...) Je souhaite, via une macro, créer une nouvelle feuille "Semaine" avec En A4:A7 Les noms des collaborateurs En B3:H3 Les dates correspondant à une semaine de travail avec en B3 le Lundi et en H3 le dimanche En B4:H7 Leur emploi du temps saisi dans la feuille "Planning" La semaine voulue dépend de la cellule active de la feuille "Planning".
Exemple: Si la cellule active est l'une d'un des collaborateurs comprise entre le Lundi 15 et le dimanche 21 décembre 2003 (Soit dans la zone C359:F365, car je n'ai aucune raison de modifier les dates en colonne B!), la macro doit créer une nouvelle feuille "Semaine" avec En A4:A7 Les noms des collaborateurs En B3:H3 Du lundi 15/12/03 au Dimanche 21/12/03 En B4:H7 Leur emploi du temps saisi dans la feuille "Planning"
Suis-je plus clair? Merci d'avance Gilles
"AV" a écrit dans le message de news:OE%
Il faudrait vraiment préciser en étant clair et avec des exemples sous forme de
références style A1 Ex : En B1:B10 .....blabliblabla En A1:A4 .....albalbilbalb
Exemple de non clarté :
Pour la création d'un planning, j'ai saisi dans la 2ème colonne les dates
** On peut supposer qu'il s'agit d'une plage du style B1:Bx
........, dans la 2ème ligne le nom des 4 collaborateurs. ** On peut supposer qu'il s'agit de la plage A2:D2
D'où problème d'intersection des 2 plages....!
AV
AV
Suis-je plus clair?
Là c'est limpide ! Tu vois que quand tu veux...;-)
Sub zz_Planning() Sheets("Planning").Activate '## Remplir le tableau semaine If ActiveCell.Row < 16 Or ActiveCell.Row > 2900 _ Or ActiveCell.Column <> 2 Then Exit Sub Application.ScreenUpdating = False jr1 = Evaluate(ActiveCell * 1 & "-mod(" & ActiveCell * 1 & "-2,7)") lg1 = Application.Match(jr1, Range("ListeDates"), 0) + 10 For i = 2 To 6 Range(Cells(lg1, i), Cells(lg1 + 6, i)).Copy Cells(i + 1, 2).PasteSpecial Paste:=xlValue, Transpose:=True Next Application.CutCopyMode = False: [A3].Select '## Ajout Feuille Semaine 'On pourrait se contenter d'un copier/coller du planing hebdo 's'il n'y a pas à recréer la feuille "Semaine" chaque fois Application.DisplayAlerts = False On Error Resume Next Sheets("Semaine").Delete Sheets.Add.Name = "Semaine" Application.DisplayAlerts = True Sheets("Semaine").Select [Planning!A3:H7].Copy ([A1:H5]) Cells.EntireColumn.AutoFit [A1].Select End Sub
PS :Plutôt que des blablas ici, si tu veux l'exemple en bal... fais signe !
AV
Suis-je plus clair?
Là c'est limpide !
Tu vois que quand tu veux...;-)
Sub zz_Planning()
Sheets("Planning").Activate
'## Remplir le tableau semaine
If ActiveCell.Row < 16 Or ActiveCell.Row > 2900 _
Or ActiveCell.Column <> 2 Then Exit Sub
Application.ScreenUpdating = False
jr1 = Evaluate(ActiveCell * 1 & "-mod(" & ActiveCell * 1 & "-2,7)")
lg1 = Application.Match(jr1, Range("ListeDates"), 0) + 10
For i = 2 To 6
Range(Cells(lg1, i), Cells(lg1 + 6, i)).Copy
Cells(i + 1, 2).PasteSpecial Paste:=xlValue, Transpose:=True
Next
Application.CutCopyMode = False: [A3].Select
'## Ajout Feuille Semaine
'On pourrait se contenter d'un copier/coller du planing hebdo
's'il n'y a pas à recréer la feuille "Semaine" chaque fois
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Semaine").Delete
Sheets.Add.Name = "Semaine"
Application.DisplayAlerts = True
Sheets("Semaine").Select
[Planning!A3:H7].Copy ([A1:H5])
Cells.EntireColumn.AutoFit
[A1].Select
End Sub
PS :Plutôt que des blablas ici, si tu veux l'exemple en bal... fais signe !
Là c'est limpide ! Tu vois que quand tu veux...;-)
Sub zz_Planning() Sheets("Planning").Activate '## Remplir le tableau semaine If ActiveCell.Row < 16 Or ActiveCell.Row > 2900 _ Or ActiveCell.Column <> 2 Then Exit Sub Application.ScreenUpdating = False jr1 = Evaluate(ActiveCell * 1 & "-mod(" & ActiveCell * 1 & "-2,7)") lg1 = Application.Match(jr1, Range("ListeDates"), 0) + 10 For i = 2 To 6 Range(Cells(lg1, i), Cells(lg1 + 6, i)).Copy Cells(i + 1, 2).PasteSpecial Paste:=xlValue, Transpose:=True Next Application.CutCopyMode = False: [A3].Select '## Ajout Feuille Semaine 'On pourrait se contenter d'un copier/coller du planing hebdo 's'il n'y a pas à recréer la feuille "Semaine" chaque fois Application.DisplayAlerts = False On Error Resume Next Sheets("Semaine").Delete Sheets.Add.Name = "Semaine" Application.DisplayAlerts = True Sheets("Semaine").Select [Planning!A3:H7].Copy ([A1:H5]) Cells.EntireColumn.AutoFit [A1].Select End Sub
PS :Plutôt que des blablas ici, si tu veux l'exemple en bal... fais signe !