Copier/ coller de colonnes suivant date et numero de semaine

jehu73

XLDnaute Nouveau
Bonjour à tous

Voici mon besoin:
J'ai un tableau de donnée classée suivant les mois de l'année et j'ai besoin de copier les données du mois à n'importe quel moment dans un tableau classé par semaine.
suivant le numero de semaine indiqué j'ai besoin de faire une recherche du mois qui correspond à cette semaine pour copier les données de la colonne correspondante et les coller dans la colonne de la semaine indiquée.
Il est possibleque cette manipulation se fasse plusieur fois pour la m^me semaine donc besoin d'effacer les ancienns données et de copier les nouvelles.
je ne suis pas un pro en VBA et j'aimerai votre aide

Merci beaucoup

Je vous fais suivre le tableau concerné. je suis sous excel 2016 mais je l'envoie en 97
 

Pièces jointes

  • Exemple1.xls
    41 KB · Affichages: 33

jehu73

XLDnaute Nouveau
Merci lolote83 c'est vraiment excellent. juste une petite chose parcontre . comme je l'indique dans le fichier il n'y aura pas les 52 semaine de l'année. certainement une 10ene. donc les numero de semaine vont changer au cours de l'année dans le tableau. et je vois que si je déplace la semaine 6 ca ne prend pas en compte. y a t'il une solution.
merci encore pour votre aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Peut-être comme ça :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim R3 As Range 'déclare la variable R3 (Recherche 3)
Dim D As Date 'déclare la variable D (Date)

If Target.Address <> "$A$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en A1, sort de la procédure
If Target.Value = "" Then Exit Sub 'si A1 est effacée, sort de la procédure
Set R1 = Range("S1").CurrentRegion.Find(Target.Value, , xlValues, xlWhole) 'définit la première recherche R1 (recherche le numéro de la semaine dans la colonne S)
D = DateSerial(Year(R1.Offset(0, 1)), Month(R1.Offset(0, 1)), 1) 'définit la date D en fonction de l'occurrence trouvée
Set R2 = Range("B3:M3").Find(D, , xlFormulas, xlWhole) 'redéfinit la recherche R2 (recherche la date dans la plage B3:M3)
Set R3 = Range("B14:M14").Find(Target.Value, , xlValues, xlWhole) 'redéfinit la recherche R3 (recherche le numéro de la semaine dans la plage B14:M14)
R2.Offset(1, 0).Resize(7, 1).Copy R3.Offset(1, 0) 'copie les valeur du mois dans la cellule R3 décalé d'une ligne vers le bas
End Sub
 

jehu73

XLDnaute Nouveau
Super Lolote83. Le cas que tu me propose est vraiment très intéressant. La seule contrainte pour moi c'est que je dois faire une comparaison entre les semaines et qu'une fois passé 12 semaine je fais une sorte de raz et donc je n'ai plus de vision en amont par exemple entre la semaine 10,11,12,13.

J'ai malheureusement cette contrainte. Ce qui m'aurai fallu c'est que je puisse changer à ma guise la ligne 14 tout en gardant une suite logique bien sûr.

Mais merci pour ce travail. J’en prends bonne note.
 

Discussions similaires