Macro Excel - Automatiser Copier - Coller

heislsim

XLDnaute Junior
Bonjour tout le monde,

C'est mon premier message ici, j'espère que ce poste ne sera pas un doublon et qu'il est posté dans la bonne section.
Je me lance dans le macro excel bon grès malgré suite au volume de donnée que je traiter dans les jours à venir (près 10 000 copier/coller du même type). J'ai regardé quelques tuto pour comprendre un peu l'architecture des macro mais je suis un peu dans l'impasse, je ne sais pas trop si ce que je désir est possible ET surtout le nom de la ligne de code ^^

J'ai fait un fichier excel simplifier des copier/coller que je dois faire.
La longueur de mes colonnes de données brutes (B et C) varie à chaque fois. Ma valeur max n'est jamais à la même cellule, je suis donc obligé de lancer le premier copier/coller à partir d'une sélection faire par ma souris ( j'ai trouvé ce code sur le net : " Set Plage = ActiveWindow.RangeSelection " ).
Ensuite je copier -> je sélection où ça doit être coller (c'est toujours au même endroit) -> je colle

Maintenant le problème arrive, je voudrais que de manière automatique la FIN de mes 2 colonnes ( ici à partir de B et C 26) se copie automatique dans une 2ème zone (ici aussi c'est toujours au même endroit)

Actuellement je suis obliger de créer un 2ème macro pour lancer cette commande et comme je dois faire ça énormément de fois je voudrais l'automatiser.

Merci d'avance pour vos réponses :)

Simon
 

Pièces jointes

  • Pour forum.xlsm
    20.1 KB · Affichages: 34
  • Pour forum.xlsm
    20.1 KB · Affichages: 37
  • Pour forum.xlsm
    20.1 KB · Affichages: 41

heislsim

XLDnaute Junior
Re : Macro Excel - Automatiser Copier - Coller

Merci beaucoup pour cette réponse rapide.

Tu as tournée ça d'une autre manière ne recherchant le max puis en dictant les ordres en fonction de ça si je comprends bien le code (big chinois là :'( ).
N'existe-il pas une ligne de code par rapport à la sélection par souris juste avant car dans d'autre copier/coller se sera une valeur intermédiaire que je devrais prendre comme "frontière" entre les 2 copier/coller que je devrais faire.

Cela me raccourcie quand même la tâche du coup je vais pouvoir déjà exploiter ce code. J'abuse peut-être mais peux-tu rajouter une petite explication des niveaux clés du code à changer, il y a pas mal de chose dont je ne comprends malheureusement pas l'explication ( Max = 0 / ligne = 0 / If Cells(i, 3) > Max Then Max = Cells(i, 3) ligne = i / Range("B4:C" & (ligne - 1)) )

Autre chose, je dois copier cela sur une autre feuille (pas simplement des cellules à côté, tu peux me faire un exemple.
Ultime chose, faire la même chose mais avec la valeur la plus négative, j'ai tenté de convertir un peu tout mais ça me donne pas la bonne chose (cf fichier)
 

Pièces jointes

  • Pour forum 2.xlsm
    22.4 KB · Affichages: 37
  • Pour forum 2.xlsm
    22.4 KB · Affichages: 28
  • Pour forum 2.xlsm
    22.4 KB · Affichages: 34

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Excel - Automatiser Copier - Coller

re,


Max = 0 / ligne = 0
Max & ligne sont utilisés dans la boucle pour pouvoir trouver le maximum ainsi que la ligne qui contient la valeur maximum


le fichier en retour,

explications dans le code

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    23 KB · Affichages: 38
  • 111.xlsm
    23 KB · Affichages: 40
  • 111.xlsm
    23 KB · Affichages: 47

heislsim

XLDnaute Junior
Re : Macro Excel - Automatiser Copier - Coller

Yes je touche au but, j'ai réussi l'intégration dans mon doc.

Pour faire la même chose mais en cherchant le min.
J'ai réussi à faire les changement nécessaire la seul chose c'est que ma ligne avec ma valeur minimum (cf nouveau tableau) apparait dans les 2 colonne et je ne sais pas comment intégrer " (ligne - 0) " d'avant sur la ligne du bas où faut le mettre (erreur dans le placement au qq chose du style)

Ah et en bonus (si c'est pas compliqué), mes données de bases ont une mise en forme conditionnel et je ne souhaite pas les avoirs pour la suite. Peut-on simplement reporter la valeurs des cellules (comme un collage spécial - valeur)

Promis après je t'embête plus :p
 

Pièces jointes

  • Pour Forum 3.xlsm
    21.1 KB · Affichages: 29
  • Pour Forum 3.xlsm
    21.1 KB · Affichages: 45
  • Pour Forum 3.xlsm
    21.1 KB · Affichages: 37
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro Excel - Automatiser Copier - Coller

Re,

avec ce code, il reste à modifier le nom de la feuille sur laquelle s'effectue les copies

Code:
Sub Copier_1()
Min = 0
ligne = 0
' la boucle va de 4 à la dernière ligne non-vide de la colonne C
' la dernière ligne non-vide est calculée en remontant vers le haut à partir de la ligne 65536
' 65536 étant la limite pour la version Excel 2003
' 1048576 étant la limite pour la version Excel 2007
For i = 4 To Range("C65536").End(xlUp).Row
If Cells(i, 3) < Min Then
    Min = Cells(i, 3)
    ligne = i
End If
Next i
'   Sheets(2).Range("D7")= ligne de destination de la première partie - (ligne - 1) c'est par rapport à où s'arrêter
Range("B4:C" & (ligne - 1)).Copy Destination:=Sheets("LA_FEUILLE_DE_DESTINATION").Range("D7")
'   Sheets(2).Range("H7") = la ligne de destination de la 2nd partie'
Range("B" & ligne & ":C" & Range("B300").End(xlUp).Row).Copy Destination:=Sheets("LA_FEUILLE_DE_DESTINATION").Range("H7")
End Sub

à+
Philippe
 

Discussions similaires

Réponses
56
Affichages
1 K
Réponses
12
Affichages
237

Membres actuellement en ligne

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 007
dernier inscrit
salma_hayek