Répéter une macro de copier/coller

younes38 Messages postés 4 Statut Membre -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour tout le monde,

Je bloque depuis peu sur une macro que j'aimerais réalisé. Etant débutant en macro, j'ai un peu bricolé avec tout ce que j'ai pu trouver pour faire quelquechose mais le résultat n'est pas correct.

J'explique mon problème:
Je souhaite d'un classeur A (CEB_final) copier plusieurs cellules à un classer B (Essai_opt_1)
puis du fichier B copier d'autres cellules vers des cellules du classeur B.
jusque là pas de problème sauf que quand je boucle pour réitérer cette opération sur plusieurs lignes Excel ne m'affiche le copier collé que pour la premiere et dernier ligne.

Si quelqu'un pouvait m'aider ce serait super sympa

Ci-dessous mon code:

Sub

Dim i As Long
Dim DerniereLigne As Long

DerniereLigne = Range("B65536").End(xlUp).Row

For i = 6 To DerniereLigne

'Selection des données Input pour ligne 1
Windows("CEB_final.xlsx").Activate
Sheets("IRWST").Range("K:P" & DerniereLigne).Select
Selection.Copy
Windows("ESSAI_opt_1.xlsm").Activate
Range("E:J" & DerniereLigne).Select
Next iActiveSheet.Paste
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SmallScroll Down:=-6
End Sub

4 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    bonsoir Younes, bonsoir le forum,

    Pas très clair tout ça... Ni tes explications ni ton code plutôt incohérent.
    Je pense qu'avec deux fichiers exemple montrant ce que tu as avant et ce que tu voudrais après, ce serait clair pour tout le monde...

    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    En attendant les Fichiers comme te l'a demandé Thautheme (bonjour) il doit manquer l'effectation de la variable "i" dans ton code
    ne serait ce pas ça:

    For i = 6 To DerniereLigne 

    'Selection des données Input pour ligne 1
    Windows("CEB_final.xlsx").Activate
    Sheets("IRWST").Range("K:P" & DerniereLigne).Select
    Selection.Copy
    Windows("ESSAI_opt_1.xlsm").Activate
    Range("E:J" & DerniereLigne).Select


    Range("K" &  i & ":P" & DerniereLigne).


    Mais effectivemment, ton code est incohérent

    Thautheme, je te laisse le bébé ;o)
    Michel
    0
  3. younes38 Messages postés 4 Statut Membre
     
    Bonjour,

    Merci pour votre réponse les amis, je ne peux pas vous laisser de documents joints car je suis soumis à une clause de confidentialité.

    Je me suis en effet trompé dans mon code: le next devrait être en avant dernière ligne. Sinon concernant l'incohérence de mon code, c'est normal, c'est un code que j'ai bricolé à travers ce que j'ai pu trouver et comprendre un peu sur les forums...

    comme je l'ai dit, je souhaite d'un classeur A (CEB_final) copier plusieurs cellules à un classer B (Essai_opt_1), les cellules copiées sont les cellules de K à P de la dernière 6ème ligne à la dernière.
    Ces valeurs copiées vont me permettre de lancer un calcul dans le fichier B, puis, une fois le calcul effectué, j'aimerais exporter les résultats obtenus vers les classeur A et les coller de la colonne Q à T du second classeur.
    j'ai plusieurs centaines de lignes du coup j'aimerais créer une boucle qui me fait ce "copié/collé" autant de lignes qu'il y a c'est pour cela que je commence par calculer le nombre de lignes
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Si je comprend ton souci tu veux copier les valeurs des colonnes K à P de la 6° ligne à la dernière sur l'autre classeur colonnesE à J. a partir de la 6° ligne
      Si c'est bien cela pas besoin d'une boucle!

      Tu dis....

      E à J: 5 colonnes..... K à P: 6 colonnes ????

      par exemple
      Dim DerniereLigne As Long, Tablo
      DerniereLigne = Range("B65536").End(xlUp).Row
      Windows("CEB_final.xlsx").Activate
      Tablo = Sheets("IRWST").Range("K6:P" & DerniereLigne)
      Windows("ESSAI_opt_1.xlsm").Activate
      ActiveSheet.Range("E6").Resize(UBound(Tablo), 6) = Tablo
      0
    2. younes38 Messages postés 4 Statut Membre
       
      oui je veux copier ces lignes là une par une puis une fois qu'elles sont copiées laisser le classeur B faire le calcul puis prendre le résultat et l'exporter
      0
  4. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour le fil, bonjour le forum,

    Bonjour Michel.

    L'excuse des données confidentielles est inacceptable ! Rien ne t'empêche de confectionner deux fichiers avec des données bidons reflétant ton problème... Mais c'est vrai, ça demande un peu de travail et tu ne sembles préférer que ce soit les autres qui bossent pour toi...
    Au lieu de résoudre ton problème en une seule réponse, ton fil va s'éterniser. Je passe la main...

    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Surtout qu'il n'a pas daigné regarder ce que je lui avais proposé

      Younes38, élu boulet du jour
      0
    2. younes38 Messages postés 4 Statut Membre
       
      Thauteme tu as raison je vais faire ça de suite

      Michel_m j'ai essayé ce que tu as dit ça ne marche pas.
      comment je fais pour rajouter des fichiers?
      0