Un drôle de numéro

Bonjour

Une question de mise en forme, probablement basique pour des experts.

Dans un fichier avec quelques milliers de lignes (une ligne par dossier), j’ai une colonne (numéro de dossier) qui est (pour chaque ligne) une concaténation de l’année (YYYY) et d’une numérotation (à quatre chiffres)
- Les deux sont séparés par un espace, un tiret et un espace
- L’année est déduite d’un autre champ
- La numérotation (si cellule vide) est attribuée par une macro qui se déclenche à chaque changement de cellule.

Pour le numéro de dossier, le résultat est donc par exemple : « 2020 – 1 » ou « 2021 – 285 »

Mais je voudrais obtenir le format suivant : « 2020 – 0001 » ou « 2021 – 0285 »

Que ce soit par le « Format de Cellule » ou au sein d’une des macros, j'ai essayé de nombreuses options mais aucune ne fonctionne. J'ai l'impression que la séquence du milieu entre les valeurs numériques ("espace, tiret, espace") empêche toute reconnaissance afin d'imposer un format à l'ensemble de la cellule.

Merci par avance de vos conseils.

Bonjour,

Utilise la fonction VBA Format() (ou TEXTE() dans Excel). Ca devrait te donner un truc du genre :

NoDossier = Year(TaDate) & " - " & Format(No, "0000")

Bonjour

Merci de cette réponse rapide.

Y aurait-il une solution pour se limiter à la mise en forme uniquement ? (car pour le contenu, cela fonctionne déjà).

Bonjour

Merci de cette réponse rapide.

Y aurait-il une solution pour se limiter à la mise en forme uniquement ? (car pour le contenu, cela fonctionne déjà).

Je n'ai pas compris ce que vous souhaitez ? Le code proposé plus haut est à adapter à votre macro de numérotation, car la question du format se gère de préférence au moment de créer ledit numéro. Il est toujours possible de corriger le numéro après coup, mais avant de proposer quelque chose je veux être sûr de bien comprendre ce qui vous pose pb actuellement.

Bonjour

Effectivement, les informations fournies étaient incomplètes ; désolé.

Mon fichier utilise une macro pour (entre autres) générer le numéro et il concatène des informations indépendamment de la macro :

  • Pour l’année, elle est déduite d’une cellule ou une date est saisie.
  • Pour le numéro généré, c’est la macro qui fait le boulot et j’ai ajouté une ligne de formattage :
    Range("Tableau1[Numérotation]").NumberFormat = "0000"

mais la valeur enregistrée reste « 1 » ou « 285 » dans mes exemples précédents, même s’ils apparaissent en « 0001 » ou « 0285 » dans la colonne Numérotation (qui est destinée à rester masquée).

Pour la concaténation, Excel ne prend donc que « 1 » ou « 285 » et non « 0001 » ou « 0285 » ce qui est logique.

Je voyais donc deux options

1 - Forcer une valeur « 0001 » ou « 0285 » dans la colonne Numérotation OU

2 – Formatter la colonne concaténée (Ref Dossier) afin d’avoir le format « AAA – 0001 »

J’espère que c’est (un peu) plus clair !

Bonjour à tous

Ici NumberFormat = "0000" ne sert à rien puisqu'on ne formate pas un nombre mais un texte

Utilise la proposition de Pedro22 qui formate le texte au sein de la concaténation

Format(No, "0000")

Je viens de réaliser mon erreur ...

En supprimant la formule de concaténation et en intégrant la proposition de Pedro2, j'obtiens exactement ce que je souhaitais.

Mille merci à tous les deux.

Rechercher des sujets similaires à "drole numero"