Macro : copier coller conditionnel

teddy72

XLDnaute Nouveau
Bonjour,

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 – 1correspondra à la feuille Arnage TTF245
A25179 – 2correspondra à la feuille Arnage TTF247
A25179 – 3correspondra à la feuille Arnage TTF248
A38469 – 1correspondra à la feuille Laval TTF075
A38469 – 2correspondra à 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 vous remercie d'avance pour votre aide.

Teddy
 

Pièces jointes

  • Rejets TTF Anjou-Maine 2010.zip
    31.5 KB · Affichages: 69

Staple1600

XLDnaute Barbatruc
Re : Macro : copier coller conditionnel

Bonsoir


Comme je te l'ai dit, hier à 22h11

Ici on n'est pas au taff, et on a tout son temps.

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

Tu vois où se situe la question :rolleyes:
 
Dernière édition:

teddy72

XLDnaute Nouveau
Re : Macro : copier coller conditionnel

Bonsoir,

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.

Voir la nouvelle PJ
 

Pièces jointes

  • Exemple.zip
    17.4 KB · Affichages: 30
  • Exemple.zip
    17.4 KB · Affichages: 34
  • Exemple.zip
    17.4 KB · Affichages: 31

teddy72

XLDnaute Nouveau
Re : Macro : copier coller conditionnel

un bout de code pour donner un exemple

Sub Macro2()

Range("D9:AG9,AJ9:AY9").Select
Selection.Copy
Sheets("ARNAGE TTF245").Select
Range("B28").Select
ActiveSheet.Paste
End Sub

Faire cette copie en fonction de la semaine en cours
 

teddy72

XLDnaute Nouveau
Re : Macro : copier coller conditionnel

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
 

Discussions similaires

Réponses
12
Affichages
741

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD