Comment insérer plusieurs formats de cellules dans une macro?

  • Initiateur de la discussion Initiateur de la discussion Sebasti1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sebasti1

XLDnaute Nouveau
Bonjour à tous,

Je n'ai pas trouvé ma réponse dans les différents forum que j'ai pu visiter sur le net, alors je viens poser ma question ici.

Afin de faciliter certaines tâches fastidieuses de mon quotidien, j'ai créé une petite macro qui me rassemble les données de X fichiers excels dans un seul et même tableau.

Mon souci est le suivant:
En admettant que mon tableau ait 5 colonnes, j'ai besoin de 4 formats différents:
Colonne 1 format texte
Colonne 2 et 3 format numéric avec deux décimales
Colonne 4 format numéric avec 5 décimales
Colonne 5 format date

Lorsque je crée la macro (via l'enregistreur) si je fais le "formatage" des colonnes avant l'import des données, seul le format 5 décimales est appliqué à l'ensemble des colonnes.
Si je mets ce même "formatage" en fin de macro, le résultat est identique.

Il semble que la macro ne veuille pas intégrer tout les formats que je lui demande.

Y-a-t-il une astuce?

Ci-dessous, le code dans VBA:

Columns("A:A").Select
Range("A3").Activate
Selection.NumberFormat = "@"
Range("D😀,F:F").Select
Range("F3").Activate
Selection.NumberFormat = "#,##0.00"
Columns("G:G").Select
Range("G3").Activate
Selection.NumberFormat = "dd/mm/yy;@"
Columns("H:H").Select
Range("H3").Activate
Selection.NumberFormat = "0.00000"

Merci d'avance pour votre aide.

Séb
 
Re : Comment insérer plusieurs formats de cellules dans une macro?

Salut Sebasti1 et le forum
Utilises les balises, ça facilite la lecture !
Code:
Range("A:A").NumberFormat = "@"
Range("D:D,F:F").NumberFormat = "#,##0.00"
range("G:G").NumberFormat = "dd/mm/yy;@"
range("H:H").NumberFormat = "0.00000"
Attention : ça ne concerne que la page active au moment de l'exécution du code. Avec un lambeau de code...
A+
 
Dernière édition:
Re : Comment insérer plusieurs formats de cellules dans une macro?

Bonjour Seb bienvenu, bonjour le forum

Essaie comme ça :
Code:
With Sheets("Feuil1")
    .Columns(1).NumberFormat = "@"
    Application.Union(.Columns(4), .Columns(6)).NumberFormat = "#,##0.00"
    .Columns(7).NumberFormat = "dd/mm/yy;@"
    .Columns(8).NumberFormat = "0.00000"
End With

[Édition]
Bonjour Gorfael, Caillou on s'est croisé
 
Re : Comment insérer plusieurs formats de cellules dans une macro?

Bonjour à tous,

Merci pour vos réponses.
J'étais off deux jours, du coup du boulot à rattraper, je vous reviens au plus vite pour vous dire si cà fonctionne.

A+
 
Re : Comment insérer plusieurs formats de cellules dans une macro?

Bonjour,

Gorfael, j'ai essayé ton code, le résultat est exactement celui que je voulais (seule la feuille finale était concernée par la mise en page).
Donc un grand merci.
N'étant pas un pro d'excel, j'aimerais juste comprendre pourquoi l'enregistreur de macro ne me donne pas le même résultat?
Est-ce que je n'utilisais pas le bon procédé lors de l'enregistrement?

Et sinon c'est quoi les balises?

Merci encore et A+
 
Re : Comment insérer plusieurs formats de cellules dans une macro?

Bonjour le fil, bonjour le forum,

L'enregistreur de macro enregistre TOUT ce que tu fais et donc parfois des choses inutiles. Il est recommandé, pour la rapidité de l'exécution du code, d'éviter les Select. Il est clair que l'enregisteur de macro va coder ta sélection de la colonne et l'activation d'une cellule :
Code:
Columns("A:A").Select
Range("A3").Activate
Selection.NumberFormat = "@"
mais tu obtiens le même résultat avec :
Code:
Range("A:A").NumberFormat = "@"
Petit à petit tu vas acquerir suffisamment d'expérience pour savoir qu'elle partie du code, créé par l'enregistreur, tu peux supprimer. Mais l'utilisation de cet l'enregistreur reste un excellent outil d'apprentissage.

Les balises permettent de séparer les codes du reste du texte (comme j'ai fait ci-dessus). Mais il ne faut pas utiliser la Réponse rapide il faut utiliser le bouton Aller en mode avancé ou le racourci clavier [Alt]+[X]. Là tu verras parmis les icônes un # qui ouvre et ferme les balises CODE. Place tes lignes de code entre ces deux balises.
C'est vrai que le code est bien plus lisible quand il est balisé...
 
Re : Comment insérer plusieurs formats de cellules dans une macro?

Bonjour Robert,

Je comprends mieux pourquoi l'enregistreur est une solution mais pas toujours la solution, le VBA c'est tout neuf pour moi ( 2 semaines de pratique)!!

En tous cas, merci pour ta réponse, j'ai mis en pratique les balises pour une nouvelle requête, il est clair que c'est beaucoup plus lisible.

Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
13
Affichages
2 K
Retour