Macro Copier coller valeur format tri sur 2 lignes av condition

Résolu/Fermé
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 - Modifié par Christiane3866 le 21/01/2015 à 04:02
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 - 3 févr. 2015 à 19:04
Bonjour à toute la communauté
Je m'appelle Christiane, retraité, handicapée, 66 ans et n'y connaissant rien du tout en VBA
Je passe 5 à 6 heures par jour à faire des copier coller et tri de données sur Excel 2002.
Je cherche une macro pouvant me faire bénéficier d'un peu de temps libre ce qui à mon age ne serait pas du luxe. Tous vos commentaires sur le sujet me font tourner la tête (cerveau vieillissant, surement) et je ne trouve rien qui corresponde à mes attentes.
Tous les jours que dieu fait, je dois copier coller et trier des valeurs de 120 feuilles à ce jour.
Ces copier coller se font sur une sélection de quelques cellules (8 à 12) et sur 2 lignes.
Je dois exécuter une macro que j'ai tout de même faite avec l'enregistreur de macro, mais celle ci est limité sur la sélection que je lui est faite. J'ai besoin que cette macro s'exécute sur les 2 lignes que je traite aujourd'hui sans toucher aux 2 lignes précédentes (qu'elles a déjà traitée) et sans toucher aux 2 lignes suivantes(qu'elle traitera le lendemain; et ainsi de suite chaque jour qui passe (rassuré vous, certain jour je ne fais rien, repos).
Je ne vois rien dans cette fenêtre pour ajouter un fichier Word qui expliquerait en détail ma demande, peut-être en ajoutant une image, je vais essayé. non cela ne fonctionne pas;
Merci à la communauté de votre aide bienveillante.
Je ne suis pas une habituée des forum, ainsi je tâtonne un peu, mais bon, je vais bien y arriver ?
Comment vous poster un fichier joint, merci Christiane

Hourra j'ai trouvé, voici le lien : https://www.cjoint.com/c/EAvegGBN5Pb
A voir également:

23 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
21 janv. 2015 à 10:22
Bonjour,

Si tu pouvais nous mettre ton classeur excel, sans éléments personnels, avec la macro réalisée, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
21 janv. 2015 à 17:00
Bonjour, gbinforme
merci de t'intéresser à ma demande
Sur mon 1er post, j'ai déjà mis un lien concernant mon classeur
j'ai trouvé ce lien sur cjoint.com, ne serait il pas présent dans ce 1er post ?
Christiane
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 janv. 2015 à 17:30
Bonjour Christiane3866,

Tu as bien mis un lien vers le fichier Word qui illustre le problème mais tu n'as pas joint le fichier Excel qui permettra de faire des tests.

A+
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 21/01/2015 à 17:54
Bonjour, Gyrus

merci d'intervenir sur ma demande.
Vous (ou tu) voudrais mon classeur excel ? Ok je vais essayer de me débrouiller pour te le mettre en fichier joint. Je dis cela car je viens de découvrir qu'il fallait que je click sur " voir mes discussions suivies" pour apercevoir ton message.
Comme quoi, je découvre les manipulations sur les forums.
Mais bon, c'est une expérience comme une autre

A tout de suite, pour ce fameux classseur
Christiane
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 21/01/2015 à 18:27
Re christiane à Gyrus,
Oups, le lien ne veut pas se copier sur cette fenêtre.
Pourquoi, je ne sais pas. Je fais différentes manipulations, mais pas moyen.

C'est fâcheux.
Sinon le lien est https://www.cjoint.com/c/EAvr4kOtIDr
J'ai écris le lien avec le clavier
mais j'arrive pas à le coller, je viens de le tester et cela fonctionne tout de même, vous pouvez donc ouvrir le fichier, Ouf c'est rassurant
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 janv. 2015 à 20:43
La réalisation de cette macro ne me parait pas poser de problème particulier.

Peux-tu me dire pourquoi la ligne de données "Duchesse" de la feuille "Basedonnées" comprend 12 données alors que dans la feuille "Duchesse" on n'en retrouve que 10 ?

A+
0
bonjour
ta macro copy sur lui meme
donc ca sert a quoi ?

A+
Maurice
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 21/01/2015 à 22:11
Bonjour ou bonsoir à la communauté
Bonsoir à Gyrus et Maurice

Réponse aux 2 intervenants

Effectivement la base de données comprend 12 cellules, il y a erreur de ma part,
j'aurais du enlever 2 cellules en feuille "basedonnées", je n'avais pas fait attention. bêtise de ma part impardonnable.
Mon classeur n'est qu'un exemple, Je l'ai fais pour le forum et ne l'ayant pas testé, je ne m'en suis pas aperçu. Je m'aperçois de plus que les chiffres recopier ne correspondent pas. On aurait dû trouver en feuille "Duchesse" les valeurs respectives suivantes une fois triées en ordre décroissant, soit : 22 18 40 5 20 12 4 7 24 54, je suis confondue d'avoir fais une telle erreur, il est vrai que j'ai ajouté cette feuille au dernier moment car je me suis aperçu que certaines feuilles de mon gros classeur comportaient ce type d'arguments.
Cela est à corriger sur le classeur que vous avez, sinon je vous envois un nouveau lien avec les rectifications.
Pour Maurice, le fait de copier coller valeur et (ou) format sur la même plage, supprime les formules de mes plages sélectionnées (Cake à Duchesse) pour n'y faire figurer que les valeurs, ainsi je peux les trier sur les valeurs et non pas sur les formules.

Je suis disponible pour d'autres remarques, en espérant que je n'ai plus d'erreurs dans le classeur;

Christiane
0
Bonsoir
voila un debut de ta macro si tu veux la modifier

Sub Test()
Application.ScreenUpdating = False
'Sheets("Cake").Select
   Sheets(Feuil2.Name).Select
      Range("C22:J23").Copy
      Range("C22").PasteSpecial xlPasteValues
Range("A23").Select
   Sheets(Feuil3.Name).Select
      Range("C22:J23").Copy
      Range("C22").PasteSpecial xlPasteValues
'
'
Application.CutCopyMode = False
End Sub


bon je vais faire dodo
A+
Maurice
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 21/01/2015 à 22:18
Christiane à Maurice

Je te remercie, je vais tester ce bout de macro

Application.ScreenUpdating = False, j'ai vaguement lu que cette expression servait à rendre plus rapide la macro et (ou) à éviter l'instabilité de l'écran (scintillement).
Est-ce vraiment utile dans mon cas, la macro ne va s'appliquer que sur 2 lignes, certes sur plusieurs feuilles, mais rein de bien méchant je pense ?
Bonne nuit
A +
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 janv. 2015 à 22:45
Bonsoir,

Voici une proposition avec une procédure évènementielle qui se lance automatiquement lorsque tu saisis une date dans la colonne A de la feuille "Cake".
Les opérations que tu as citées sont réalisées par cette procédure.
A tester ....

https://www.cjoint.com/c/EAvw2W8GKG9

A+
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 21/01/2015 à 23:50
Bonsoir Gyrus,

Merci, je vais saisir ton lien et le tester
Je viens de tester le code optimisé de Maurice et à priori cela fonctionne, mais c'est juste un copier coller(valeur) sur lui même.

Je pense que plus tard, il élaborera ce bout de code, car il manque le tri et le plus important, que cette macro s'applique sur mes 2 lignes du jour, puis sur les 2 lignes du lendemain (qui deviendront à leur tour les 2 lignes du jour) sans toucher aux 2 lignes de la veille et encore moins aux 2 lignes suivantes qui contiennent des formules, sinon je les perdrais.

Comment dois-je faire pour poster le code que je viens de tester, et le mettre à l'intention de Maurice pour lui montrer la finalité du code ?
Je fais un copier coller dans l'onglet code de cette fenêtre ?

Christiane
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 22/01/2015 à 00:18
Christiane à Gyrus,

Je viens d'ouvrir ton lien qui représente mon classeur, mais je n'ai rien trouvé de plus que ce qu'il y avait dedans.

Quelles modifications as tu apporté à cette feuille "Cake" ?

Je viens de trouver, je devais cliquer droit sur l'onglet de la feuille et visualiser le code, Woua dur dur j'apprend vite, obligé si on veut suivre, cela me fait du bien de chercher un peu, mais c'est pas evident les manips

A + Christiane,
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
22 janv. 2015 à 00:26
As-tu testé le code en saisissant une date en A24 de la feuille "Cake" ?

A+
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
22 janv. 2015 à 00:44
Christiane à Gyrus,

Non pas encore, j'ai recopier ton code en fichier Word, au cas ou je l'effacerais pas hasard.
En ce moment je suis en train de le lire pour essayer de comprendre chaque expression, mais il est clair qu'il faudra que je cherche quelque part, afin d'insérer dans ton code une description de chaque expression. J'ai envie de comprendre ce fichu code dont je rêve tant d'avoir. Je suis têtue, je prendrais le temps qu'il faut pour le comprendre.
Pour l'instant cela reste indéchiffrable.
Je vais m'amuser, bon je vais essayé de tester ton code que tu as pris soin de m'écrire, A+ Christiane
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
22 janv. 2015 à 00:52
Avant de chercher à comprendre le code, il serait bien que fasses l'essai pour t'assurer que cela correspond à ta demande.

Si tel est le cas, je pourrais ensuite apporter des commentaires sur les points qui te paraitront brumeux.

Bon sur ce, je vais me libérer les neurones et faire un gros dodo !
A
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
Modifié par Christiane3866 le 22/01/2015 à 02:04
Christiane à Gyrus

Pendant que tu étais parti reposer tes neurones, j'ai testé ton code.
Waouuu, C'est ce qu'on appelle un "pu...n" de code.
Je l'ai testé en long, en large, en travers, je l'ai secoué dans tous les sens, il n'a pas bronché d'un poil.
Au début que je l'ai testé, je me suis aperçu qu'il appliquait les couleurs en même temps. J'ai dis "zut", car je ne connais le résultat des points attribué à chaque n° qu'à la fin des (copier coller et tri) d'où j'en détermine 3 numéros à qui j'attribue une couleur.
Comme tu m'avais prévenu que tu avais basé le lancement de ton code sur la date que j'inscrivais en feuille "Cake", j'ai recommencé le test en supprimant les chiffres que j'inscris manuellement dans mes 3 cases B7, C7, D7 des couleurs, et là cool ton code s'est déroulé sans appliquer les couleurs, et avec un peu de réflexion (il me reste quelques neurones) j'ai supprimé la date en question de la feuille "Cake" et je l'ai inscrite à nouveau, Bingo il me refait la même chose en appliquant les couleurs.
Je m'aperçois que ton code en vraiment génial car je peux recommencer les lignes d'avant au cas ou je me serais trompé et ce simplement en supprimant la date, puis en réécrivant ma base de données et en retapant la date concernée dans la feuille "Cake" absolument fantastique, je m'attendais pas à cela.
Franchement, ton boulot sur ma requête est au delà de mes espérances; tu as du bosser comme un fou furieux.
Et puis je me suis dis qu'il devait y avoir une erreur quelques part, on ne peut pas pondre un code parfait du 1er coup.
Et bien oui, j'ai trouvé l'erreur (que tu as du omettre par inadvertance), elle se trouve dans la feuille "lune" le tri en ordre croissant sur la 1ere ligne de la sélection C22:J22) ne se fait pas.

En conclusion, je ne dois jamais supprimer la feuille "Cake", pas de soucis.
Je vais de ce pas faire un somme et me remettre au boulot demain après midi.

Merci et à bientôt de te relire, je devrais ouvrir une bouteille de champagne pour ce site et des bravos répétés pour les personnes comme toi, qui ose donner un vrai coup de main à des personnes comme moi, vraiment un très grand Merci.
Tu n'imagines pas le bien que cela me fait de savoir que je ne vais plus passer des heures interminables à faire des copier coller tri et applications de couleurs.
L'émotion à été très forte et je suis restée ébahie devant le travail que fait ta macro.

Christiane
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
22 janv. 2015 à 09:24
Bonjour,

Bien dormi ?

Je suis heureux que ma proposition te donne satisfaction et je suis sensible à tes remerciements.

J'ai modifié le code pour la prise en compte du tri en ordre croissant sur la 1ere ligne de la sélection C à J de la feuille "lune".

J'ai ajouté des commentaires dans le code pour t'en faciliter la compréhension.

Si tu dois transcrire ce code sur un autre classeur, note bien que j'ai utilisé des plages nommées "CouleurOrange", "CouleurJaune" et "CouleurRose" pour le traitement des couleurs. Il faudra donc que tu crées ces mêmes noms sur l'autre classeur.

Je n'ai pas traité la colonne B car je ne sais pas comment tu utilises cette indication.

Bon courage !

https://www.cjoint.com/c/EAwjFW7bF6t

A+
0
bonjour

Voila une macro qui travail sur toutes les onglets

http://cjoint.com/?3AwmxNPkdji

A+
Maurice
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
22 janv. 2015 à 18:11
Bonjour à Gyrus et Maurice
Je viens de me connecter au site et prend note de vos commentaires.
Je vais télécharger vos liens et regarder cela de près.

NB : j'ai testé le code sur une copie conforme du classeur et le code bloque sur la 11eme ligne du code en partant du bas :
If Cel.Value = Sheets("Basedonnées").Range("CouleurOrange") Then

Intéressant, non ?

Je suppose que c'est un problème de transposition d'un classeur à un autre même si celui-ci est identique

Christiane
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
22 janv. 2015 à 18:52
Je suppose que tu n'as pas pris en compte ce que j'ai écrit précédemment.

Si tu dois transcrire ce code sur un autre classeur, note bien que j'ai utilisé des plages nommées "CouleurOrange", "CouleurJaune" et "CouleurRose" pour le traitement des couleurs. Il faudra donc que tu crées ces mêmes noms sur l'autre classeur.

A+
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
22 janv. 2015 à 19:32
Christiane à Gyrus,

Bien, voilà une bonne info, créer ces mêmes noms dans l'autre classeur, couleurOrange, CouleurJaune, CouleurRose, parfait.

Et en pratique, comment puis je faire ?

Je viens de tester ton nouveau classeur avec modification de ta macro, et toujours excellente.
Mais il est vrai que lorsque je transpose ce code dans une copie de ce classeur, la même erreur subsiste et donc sur la même ligne qui s'affiche en jaune. J'ai promené ma souris dessus et sur le mot Value il affiche une bulle Cel.Value = 1 , voilà pour l'info. Bon il me reste plus qu'à créer les noms lorsque que je serais comment m'y prendre.

Mais toujours bravo pour ta macro. Je dois allé manger, je reviendrais sur le site pour répondre aux test que j'ai fait sur la macro de Maurice qui comporte des lacunes.

A+ Christiane
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015
22 janv. 2015 à 20:40
Procédure pour renseigner un nom :

Sélectionner dans le menu INSERTION et le sous-menu NOM la
commande DEFINIR.
La boîte de dialogue "Définir un nom" apparaît.
Cliquer sur Ajouter puis renseigner le NOM et la référence à ce nom.
Exemple de référence pour "CouleurOrange"
=Basedonnées!B7


puis recommencer pour les deux autres couleurs.

Si tu éprouves des difficultés, fais-moi passer un exemple de ton classeur.

A+
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
22 janv. 2015 à 21:56
Christiane à Gyrus

Cool, j'ai configuré comme tu me l'as suggéré et cela fonctionne parfaitement après avoir créé les Noms (CouleurOrange, jaune et rose) en leur indiquant la référence de cellule.

Demain je vais transposer cela dans mon gros classeur en changeant les références des onglet s et quelques bricoles je suppose et te tiens au courant. Possible que cela prenne 1 ou 2 jours, ma dextérité en la matière est loin d'être aiguisée.

Grand merci à ton aide généreuse. Je vais également étudier les remarques ajoutées à ton code. lignes en vert.

Christiane
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
25 janv. 2015 à 18:10
Christiane à Gyrus

Bonjour néanmoins à la communauté et Maurice

J'ai effectué la transposition de ton code sur mon gros classeur qui finalement comporte 197 feuilles et dont chaque feuille comporte plus ou moins de données. Maintenant je comprend pourquoi je passe autant de temps à faire des copier coller, des tri et application de couleur.
Je teste ta macro au fur et à mesure que je l'intègre dans mon gros classeur. J'adapte quelques modifications sur certaines de mes feuilles car ta macro travaille sur une ligne bien précise de chaque feuille. Les modifications prennent du temps, mais j'y arrive avec un peu de patience.

Ton code fonctionne parfaitement même lorsque je dois l'adapter à certaines feuilles.
Je tombe actuellement sur des feuilles (25 actuellement) qui comportent quelques particularités concernant le tri.
Je m'explique sur une de ces feuilles.
Comme tu le sais, vu que tu as déjà eu mon classeur en "main", je travaille toujours sur 2 lignes et cela se répète chaque jour.

Aujourd'hui, je travaille sur la sélection du jour et je tri en ordre croissant sur la 1 ère ligne
Le lendemain, je vais trier en ordre croissant sur la 2 ème ligne
Le surlendemain je vais trier en ordre décroissant sur la 1 ère ligne
Le jour suivant je vais trier en ordre décroissant sur la 2 ème ligne
Le jour suivant je ne fais aucun tri, la sélection reste en l'état.

Je fais cela manuellement, j'ai dû insérer une colonne vierge pour y noter ma condition du jour, car moi même je m'y perdais.

Voici les annotations de conditions de tris.
C1 = tri croissant sur la 1ere ligne
C2 = tri croissant sur la 2eme ligne
D1 = tri décroissant sur la 1ere ligne
D2 = tri décroissant sur la 2eme ligne
R = rien, pas de tri

Question : Peut on intégrer cela dans ta macro existante ?

Autre petit souci, mais vraiment très petit :
Mes formules du style Si(Ax>0;basedonnées!$C$19;"") me renvoie la valeur "0".
Ce zéro me gène un peu dans certaines de mes feuilles.
Quelle serait la formule adéquate pour que la valeur renvoyée soit "rien" ou"vide" lorsque que la cellule source est vide ?

Question subsidiaire : Quel est l'intérêt d'écrire ton code dans une feuille, plutôt que dans un module normal en passant par Outil-Macro-Nouvelle macro ?
Ta macro ne fonctionne que sur cette feuille ?

De ce pas je vais continuer à transposer ta macro dans mon gros classeur et terminerai après avoir pris connaissance de ton complément de macro qui sera excellent je n'en doute pas.

Curieuse comme je suis, je me suis posée la question sur le nom "Gyrus".
Cela à t'il quelque chose à voir avec le cortex cérébrale, et plus précisément les plis du cerveau ?
Tu n'es évidement pas obligé de répondre, cela peut être d'ordre privé.

Je te dis A+ de te lire avec plaisir.
Christiane

Je te fais passer le lien pour avoir la nouvelle feuille sur le classeur, avec ton code toujours présent dans ce classeur.

https://www.cjoint.com/c/EAzsoi78C7X
0
Christiane3866 Messages postés 35 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 3 février 2015 3
22 janv. 2015 à 18:21
Christiane à Gyrus

La colonne B ne me sert à rien, je l'ai ajouté au cas ou vous voudriez vous en servir pour adapter une condition dans la macro
0