Travail des données

  • Initiateur de la discussion Initiateur de la discussion romaingovaere
  • 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 !

R

romaingovaere

Guest
Bonjour,

j'ai reçu beaucoup de fichiers Excel où des "références cadastrales" (nom de la section du cadastre où on habite + numéro de parcelle) sont entrées de manière hétérogène. Je souhaite pouvoir corriger les saisies qui ne respectent pas le formatage prévu.
En effet, nous souhaitions au départ avoir le formatage du type : AA0004 pour la section AA parcelle 4. De type 0A0004 pour la section A parcelle 4.

si la section est constituée de deux lettres, on les conserve, s'il n'y en a qu'une, on met un 0 sur le premier caractère.
les numéros de parcelles sont codés sur 4 caractères, on rajoute des 0 devant le numéro au besoin.

Je suis sûr qu'il est possible d'automatiser cela dans Excel avec les macros mais j'ai un peu de mal. Avez vous des explications pour m'aider à construire cette routine ?

Un grand Merci d'avance
 
Re : Travail des données

Bonjour Pierrejean,

Le code fournit fonctionne parfaitement, merci beaucoup.
Comment as tu procédé (si ce n'est pas trop long à expliquer) ?
si je souhaite appliquer ce code dans un autre fichier Excel, comment faire ? je sais que le simple copier-coller d'une case ne fonctionnera pas.
Merci beaucoup pour ton aide
 
Re : Travail des données

Re

Voici la fonction personnalisée commentée
Pour l'utiliser dans un autre fichier:
La copier
Ouvrir le VBE (click droit sur le nom de la feuille > click sur visualisr le code
Inserer un module: Insertion > Module
Coller la fonction
Elle est alors accessible comme n'importe quelle autre fonction d'Excel dans la rubrique personnalisées

Code:
Function NewCode(excode)
'de 1 au nbre de caracteres de l'ancien code
For n = 1 To Len(excode)
 'si le nieme caractere n'est pas numerique
  If Not IsNumeric(Mid(excode, n, 1)) Then
  'l'ajouter a la variable lettres
   lettres = lettres & Mid(excode, n, 1)
  End If
  'caractere suivant
Next n
'les chiffres sont le resultat du remplacement des lettres par rien dansl'ancien code
chiffres = CInt(Replace(excode, lettres, ""))
's'il n'y a qu'une lettre mettre 0 devant
If Len(lettres) = 1 Then lettres = "0" & lettres
'le nouveau code est fait des lettres auxquelles on ajoute les chiffres mis au format "0000"
NewCode = lettres & Format(chiffres, "0000")
End Function
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
431
F
Réponses
6
Affichages
841
M
Réponses
3
Affichages
1 K
MarieChérie
M
Retour