Se connecter avec
S'enregistrer | Connectez-vous

Fusion excel

Dernière réponse : dans Programmation

Salut,

Je n'arrive pas a faire une "belle macro" pour effectuer une tâche !

Le résultat que j'attende de la macro :

de copier une ligne dans une feuille A la coller dans une feuille Z
puis de copier une ligne dans une feuille B et de la coller la feuille Z sous le 1er collage
puis de copier une ligne dans une feuille C et de la coller la feuille Z sous le 2er collage
puis une insertion d'une ligne. afin de fair comme bloque de 3 lignes.

Une partie que j'ai fait fonction mais ce n'est pas du code propre et ne gères pas
"tant que c'est pas la fin continue" !

  1. Sheets("CA").Select
  2. Rows("2:2").Select
  3. Selection.Copy
  4.  
  5. Sheets("Feuil5").Select
  6. Rows("2:2").Select
  7. ActiveSheet.Paste
  8.  
  9. Sheets("MA").Select
  10. Rows("2:2").Select
  11. Application.CutCopyMode = False
  12. Selection.Copy
  13.  
  14. Sheets("Feuil5").Select
  15. Rows("3:3").Select
  16. ActiveSheet.Paste


Merci

Autres pages sur : fusion excel

Lassé par la pub ? Créez un compte
Expert Programmation

Citation :
Une partie que j'ai fait fonction m'est n'est pas code propre et ne gères pas "si le c'est la fin du traitement !

:pt1cable: 

Salut,

Mais quel code dégueulasse !
L'enregistreur de macro est à ce titre ton pire ami.

Te rends-tu compte que tu utilises le presse-papier ?! Et si l'utilisateur y a copié de précieuses données ! Comment oses-tu les lui écraser ?

Donc, on fait autrement. Bon, je te rassure, c'est facile. La méthode Copy() accepte un paramètre optionnel qui est la cible de la copie. Par défaut, la cible est le presse-papier. Or, il me semble que tu connais la cible, n'est-ce pas ?

Par ailleurs, pourquoi faire la moindre sélection ? On s'en fout d'activer la feuille, la cellule, etc. Ce qu'on veut, c'est lire puis écrire des données, pas se balader dans les cellules.

Or donc. Etudie ça :
  1. Worksheets("CA").Rows(2).Copy Worksheets("Feuil5" ).Cells(1, 2)

Le reste du code devrait être facile à corriger.

Tips: J'utilise Worksheets() plutôt que Sheets(). Devine pourquoi ?

--------

Bon, maintenant, ton problème...
T'as vu, au lieu d'une colonne, pour la cible, j'ai mis une cellule. Je te laisse y réfléchir, puis on en discutera. Tu verras, c'est tout simple ;) 
Expert Programmation

Euh, non, c'est sûrement que j'ai inversé ligne et colonne dans la destination.

Je précise que je proposais non pas une solution, mais une étude à faire.
Si l'on se contente juste de copier bêtement, on ne progresse pas.
Lassé par la pub ? Créez un compte