Répéter une macro de copier/coller

Fermé
younes38 Messages postés 4 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 12 décembre 2014 - 11 déc. 2014 à 18:07
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 12 déc. 2014 à 23:18
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
A voir également:

4 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
11 déc. 2014 à 22:12
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
michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
Modifié par michel_m le 12/12/2014 à 09:11
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
younes38 Messages postés 4 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 12 décembre 2014
12 déc. 2014 à 09:32
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
michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
Modifié par michel_m le 12/12/2014 à 10:29
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
younes38 Messages postés 4 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 12 décembre 2014
12 déc. 2014 à 10:21
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
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
12 déc. 2014 à 11:09
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
michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
Modifié par michel_m le 12/12/2014 à 11:16
Surtout qu'il n'a pas daigné regarder ce que je lui avais proposé

Younes38, élu boulet du jour
0
younes38 Messages postés 4 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 12 décembre 2014
12 déc. 2014 à 11:20
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
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
12 déc. 2014 à 23:18
0