Re: => Mini Démo de copié/collé de Plage/Lignes
Bonsoir, à vous deux,
A Celeda, car, tu est la 1ère, à être intérréssé par mon problème et à thierry, car même si tu n'a pas tous compris, tu a bien bien voulu, tu étais prêt, à le résoudre, tu m'a même concocter, un fichier (quand même, ce n'est pas rien ), (d'ailleurs je ne l'ai pas ouvert, j'en suis navré car entre temps, je suis déjà sur un autre problème).
Vous êtes très compatissant.
J'avais posté sur un autre forum, je ne sais pas si je peux indiquer le lien, ici, mais un spécialiste de chez eux m'a donné la réponse
Le code d'oriqgine est
Sub Macro1()
'
' Copier coller feuille 1 dans suite de feuille 2
'
Dim DerniereLigne
'Cherche la derniere ligne non vide de la feuille 2
Sheets("Feuil2").Select
DerniereLigne = Sheets("Feuil2").Application.WorksheetFunction.CountA(Columns("A"))
Sheets("Feuil1").Select
Rows("1:20").Select 'selectionne les lignes 1 à 20 dans feuille 1
Selection.Copy
Sheets("Feuil2").Select
Cells(DerniereLigne + 1, 1).Select 'selectionne la 1ere cellule vide de la feuille 2
ActiveSheet.Paste
Sheets("Feuil1").Select
Application.CutCopyMode = False
[A1].Select
End Sub
-------------------------------------------
Et il marche du tonnerre.....
Je l'ai modifié comme cela avec mes références.
-------------------------------------------
Sub Macro1()
' Copier coller feuille 1 dans suite de feuille 2
Dim DerniereLigne
'Cherche la derniere ligne non vide de la feuille 2
Sheets("Historiques").Select
DerniereLigne = Sheets("Historiques").Application.WorksheetFunction.CountA(Columns("A"))
Sheets("commande").Select
Rows("36:47").Select 'selectionne les lignes 1 à 20 dans feuille 1
Selection.Copy
Sheets("Historiques").Select
Cells(DerniereLigne + 1, 1).Select 'selectionne la 1ere cellule vide de la feuille 2
ActiveSheet.Paste
Sheets("commande").Select
Application.CutCopyMode = False
[A1].Select
'
End Sub
--------------------------------------
Donc celui ci marche aussi.
Mais j'ai un autre problème, j'en ai d'ailleurs fais part sur l'autre forum,
Je vous recolle, le texte de mon explication non résolé.
-----------------------------------------
à titre indicatif tu a nommés
''Rows("1:20")''
Je les ai renommés
''Rows("36:47")''
pour le premier groupe...j'en ai environ 20
Je pense que je vais devoir faire 20 macros
1 macro pour chaque groupe de ligne, pour avoir 1 historique, pour chaque groupe.
Parfois cela m'arrive pour le premier groupe, ' de (36:47) ou plutot en reprenant l'exemple (1:20), de rajouter des lignes de produits en faisant copier (control insert)
et coller avec (control +) (en insérant 1 ligne).
donc la selection ne sera plus (36:47) mais (36:48ou49ou50) suivant les insertions.
La macro de toute les manières ne prendra que la selection du départ soit (36:47) (meme si j'ai insérer avant 47; il ne décalera pas dans le script (47-48-49-50....)
par contre (c'est comme c'a que mes totaux sont mémorisés) lorsque sur ma feuille1 d'excel, je met à la ligne 50, la formule (=somme(36:47)) et que j'insere 10 ou 20 ou + 30 ligne supplémentaires, la somme change automatiquement (=somme(36:87) par exemple.
c'a reviens à définir une demande de calcul des lignes se trouvant entre la ligne 36 et 47
je défini 36 comme (début du copier coller)
et 47 fin du copier coller)
donc j'insere à 38 jusqu'à maximum 46, les lignes de produits.
et la formule se retrouve comme avec enchantement, à (=somme(37:58) par exemple. Il prends en compte les insertions et réajuste la formule // aux lignes insérées.
Ce que la macro, ne fais pas.
le script ne change pas selon les insertions(coller) de ligne.
meme en indiquant une plage, plus large sur script, par exemple
''Rows("36:58")'', il ne faudra pas que je dépasse la ligne 58.
Donc comme je te disais, c'est pour cela que, je vais passé 2-3 jour, ''à ménager'' mon nouveaux plan de travail, car j'ai absolument besoin d'un historique sur la feuille 2 et de voir ma feuille1 quasiment vierge.
car j'ai trop de groupe à gérer. ( je ne me vois pas avoir 300 lignes de reca pour chaques groupes, sur la meme feuille, et non plus, je ne me vois pas, à 20h00 du soir devoir me taper les copier coller de tout les groupes, sur la feuille2 pour que le lendemain, ma feuille1 soit vierge.
Cependant si tu connais un moyen pour que sur le script, le ''Rows("1:20")'' ou ''Rows("36:47")'' se transforme, se réajuste, selon les insertion, cela m'évitrait bien des modication.
-----------------------------------------------------
FIN
-----------------
Effectivement je ne sais pas si tout cela est clair, comme disais Celeda, je devrais peut-être, vous envoyé un petit fichier en explicant par des flèches, et des couleurs, ce que je veux faire exactement.
JEvous souhaite une bonne nuit, et j'espère vous retrouver, bon matin de dimanche.
merci vraiment
Hugo