J'aimerai crée une macro mais je n'y connais pas grand chose dans ce domaine et dans le cadre professionnel il m'arrive de devoir utiliser la programmation pour simplifier les taches.
Je vous expose ma demande :
Toutes les semaines je récupère un tableau que je colle dans la feuille « Base rejets ».
J’aimerai coller une plage de cellule en fonction de la semaine dans les différentes feuilles du classeur.
Dans la feuille base rejets, la semaine est indiquée en cellule C3
Dans la feuille base rejets : cellule B9 à B18
A25179 – 1correspondra à la feuille Arnage TTF245
A25179 – 2correspondra à la feuille Arnage TTF247
A25179 – 3correspondra à la feuille Arnage TTF248
A38469 – 1correspondra à la feuille Laval TTF075
A38469 – 2correspondra à la feuille Laval TTF076
A24447 – 1 correspondra à la feuille Cholet TTF233
A42309 - 1 correspondra à la feuille St sylvain TTF185
A42309 - 2 correspondra à la feuille St sylvain TTF186
A42309 - 3 correspondra à la feuille St sylvain TTF187
A42309 - 4 correspondra à la feuille St sylvain TTF421
Exemple :
J’aimerais coller la plage de cellules : D9 :AG9 ; AJ9 :AY9 (correspondant à A25179-1) de la feuille base rejets dans la plage de cellule : C : AT de la feuille Arnage TTF245 pour la semaine concernée (exemple semaine 25 et cela a chaque changement de semaine)
Ceci pour les 10 cas présent.
Par souci de capacité pour l'envoi du fichier, j'ai supprimé la plupart des feuilles.
Je t'aiderai avec plaisir quand tu posteras un fichier tout propre
(c'est à dire un nouveau classeur fraichement créé sans aucune macro XL4)
Il te suffit d'ouvrir Excel, de faire CTRL+N, puis de créer un exemple simplifié de ce que tu souhaites avec:
La situation de départ : (ce que j'ai)
La situation d'arrivée: ( le résultat que je souhaite obtenir)
PS1: pas besoin de couleur, de bordures, juste des données brutes.
PS2: sans la présence de ces macros XL4 bizarres, j'aurai ouvert ton fichier dans Excel et j'aurais fais des tests dessus (je l'ai ouvert dans Open Office , effacer ce qui semblait dis fonctionner, puis réouvert dans Excel (sans activer les macros) le temps de faire mes copies d'écrans)
EDITION : en relisant ton premier message ce qui suit dessous me pose question :
Lances cette macro dans un classeur quelconque
Code:
Sub test()
Dim a&, b&
a = Union(Range("D9:AG9"), Range("AJ9:AY9")).Columns.Count: b = Range("C9:AT9").Columns.Count
MsgBox IIf(b - a = 0, _
"Taille Plage Source=Plage Destination", _
"Il y a une différence de: " & vbLf & (b - a) & " cellules !"), _
vbInformation, _
"Vérification"
End Sub
J'ai refais le classeur, normalement il est "propre".
En faite ce que je veux si je ne prend qu'une ligne, c'est copier la ligne sélectionnée (couleur de police rouge dans la feuille "base rejets") dans la feuille ARNAGE TTF245.
Copier cette ligne suivant la semaine correspondante, dans mon cas S25. Mais il faut que la semaine suivante, cette ligne (qui va changée) soit copié en S26.
une personne m' a fait ce code mais il ne semble pas fonctionner :
Sub CopierLigneSemaine()
Dim CelCible As Range
Dim Semaine As String
Semaine = Right(Worksheets("base rejets").Range("c3"), 3)
Set CelCible = Worksheets("arnage ttf245").Range("b:b").Find(what:=Semaine, LookIn:=xlValues, lookat:=xlWhole)
If Not CelCible Is Nothing Then
Worksheets("base rejets").Range("D9:AG9,AJ9:AY9").Copy CelCible(1, 2)
End If
End Sub