Macro : copier coller conditionnel

  • Initiateur de la discussion Initiateur de la discussion teddy72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

teddy72

Guest
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

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 🙄
 
Dernière édition:
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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
326
Retour