Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Recopier mise en forme depuis une liste

Stephane CLAIN

XLDnaute Nouveau
Bonsoir,

En espérant que cette question n'a pas été encore (j'ai fait des recherches mais je n'ai rien trouvé).

Une fois par semaine, je dois récupérer des données de plusieurs personnes, l'intégrer dans mon classeur et lancer une macro.
A la fin de la macro, je me retrouve notamment avec une colonne qui contient des codes demandeurs (en feuille 1, col A) sans mise en forme.
Dans ma feuille 2, j'ai une liste de demandeurs avec la bonne mise en forme que j'aimerais appliqué à chaque cellule de ma colonne A en fonction du demandeur.
La longueur de la colonne A est comprise variable en fonction des semaines

Avez-vous une une formule ou un bout de code que je pourrais rajouter dans ma macro?

Merci par avance
 

Pièces jointes

  • mise en forme.xlsx
    263.1 KB · Affichages: 24
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
M'est avis que le demandeur n'aura pas une liste de 2000 demandeurs
(car personne d'humain ne mémorisera 2000 formats uniques de cellules dans sa teuté
Avec le PasteSpecial, on copie tout le format
 
Dernière édition:

Si...

XLDnaute Barbatruc
Bon_jour

Voici quelques lignes de code à ajouter à la suite du tien* écrit dans la fenêtre de code de la feuille de travail (Feuil1 avec ton exemple qui a peu de lignes).
VB:
  Application.ScreenUpdating = 0
  For Each R In [A6:A15]
      Set C = Feuil2.[B3:B17].Find(R)
      If Not C Is Nothing Then C.Copy R
  Next
Tu pourrais aussi ajouter tout en haut de la page (avant toute macro) la déclaration de variables : Dim R As Range, C As Range

*tu l'as eu avec l'enregistreur donc il mérite un gros dégraissage. Si tes plage évoluent beaucoup en taille (noms, formats …) tu peux jeter un coup d'œil à celui que je joins pour les autres intervenants.

Lone, je suis gêné quand tu donnes plusieurs formats au même nom et, en plus, en restreignant ceux-ci. Je pense aussi que dans la liste chargée il peut y avoir des noms qui n'ont pas été répertoriés dans le second tableau. Voici une autre proposition avec ton exemple modifié avec bien plus de lignes que dans la demande.

Staple, ton code du #14 eet rapide; et pour cause, il ne traite que quelques cas me semble-t-il.
 

Pièces jointes

  • Copy MFC.xlsm
    53 KB · Affichages: 21

Lone-wolf

XLDnaute Barbatruc
Bonjour Si...

Avant de mettre le code en ligne, j'ai éffectué le test avec l'exemple de Jean Marie; ça me bloquait le fichier, c'est pour celà que j'ai fait ainsi.

Sur un grand tableau, tu sais bien que la boucle for each est déconseillée.

Et voici la question posée par Stephane:
"la macro fonctionnera encore si je rajoute un demandeur plus tard?", donc je suppose que la liste va se prolonger, jusqu'à combien? I Dont Not.

EDIT: je viens de rééditer le code. Le classeur avec la macro modifiée.
 

Pièces jointes

  • Copy MFC-2.xlsm
    55.9 KB · Affichages: 17
Dernière édition:

Stephane CLAIN

XLDnaute Nouveau
Bonjour à tous. Effectivement mon fichier ne tournera pas avec 2000 lignes. Je crois que le max tourne autour de 400-450.
Pour les demandeurs, la liste n’évoluera pas de beaucoup. 5-6 demandeurs grand max.
Je testerais tout ça mardi ou mercredi et je vous ferais un retour. En tout cas, merci déjà pour le travail fait. Je vais gagner un peu de temps grâce à vous ^^
 
Dernière édition:

Stephane CLAIN

XLDnaute Nouveau
Bonjour,

Désolé pour ce retour tardif mais il y a déploiement de nouveaux fichiers. La macro fonctionnait bien sur l'ancienne version. Merci beaucoup. A mon retour de vacances, je testerai sur le nouveau fichier pour voir si cela fonctionne. ^^
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…