Bonjour ric,
For Each Cel In PlgGrade
Set Trouve = PlgCorres.Find(Cel.Value, , xlValues, xlWhole)
If Not Trouve Is Nothing Then
Cel.Offset(, -1).Value = PlgCorres(1, Trouve.Column - PlgCorres(1, 1).Column + 1).Value
End If
Next Cel
Ce code me vient de Theze! Si vous allez dans le topic initial viewtopic.php?p=726383#p726383, beaucoup d'éléments sont là.
Je reprends de zéro. Je tente de formater dans un fichier Excel des données extraites d'un mail, et pour lesquelles je dois modifier des formats et ajouter des informations pour respecter un template précis en vu d'un importation dans un logiciel. Pour ça, j'ai essayé de créer une macro (en mode création) pour arriver au template souhaité avec l'aide de Theze.
Oui, dans le code il y a des colonnes qui s'ajoutent et se suppriment, et c'est le fruit du mode en création lorsque j'ai essayé de reproduire le template. Pour ma part, je ne sais pas comment ajuster le code pour éviter (supprimer) les étapes inutiles du code.
L'onglet Extraction_brute illustre les données si je faisais un bête copier-coller dans Excel, et l'onglet Résultat-atteint est le résultat souhaité.
Or, je sais que le code n'est pas conforme, c'est pourquoi je fais appel au forum pour le corriger, et intégrer la macro Attribution à la macro Étape2_MF. La macro Attribution sert à ajouter la division (colonne A) pour chaque caserne, et ajouter le mot caserne (colonne B) et le mot groupe (colonne C) à chaque numéro.
J'aimerais aussi que la macro s'applique à la feuille active et non à une feuille spécifique (ici Résultat-atteint), et qu'elle fonctionne seulement sur la sélection des données que j'aurai copier dans une feuille vierge, car le nombre de lignes n'est jamais pareil d'une fois à l'autre. Parfois, je peux avoir une trentaine de lignes comme je peux en avoir plus de 300.
Oubliez le "Caserne Caserne" et "Groupe Groupe", c'est mon erreur! Le nom ne doit pas se répéter deux fois.
Désolé pour l’ambiguïté. J'espère avoir apporter un peu d'éclaircissement.
Je vous remercie pour votre aide.
A+