Insertion automatique de chiffres fixes dans des cellules de saisies

Bonjour,

Besoin d'un peu d'aide pour savoir si mon besoin est réalisable :

Dans l'exemple en pièce jointe, je renseigne des numéros de commandes en colonne B1. Ces numéros de commandes se terminent toujours par " 01".

Peut-on faire en sorte qu'en saisissant quelque chose dans une cellule de la colonne "N° de commande" de mon tableau, " 01" se mettent à la fin lorsqu'on quitte la cellule ?

Je ne sais pas si le format de nombre permet de le faire ou s'il faut du VBA ?

Merci d'avance pour vos solutions.

12commande.xlsx (10.11 Ko)

Bonjour,

format cellule, personnalisé : mettre un 0 pour indiquer qu'il y aura un chiffre, puis " 01" qui correspond à la chaine que vous voulez ajouter.

ATTENTION ! ce rajout n'est que visuel ! si vous entrez 2025 dans une cellule, il sera affiché 2025 01, mais ce ne sera pas la "vraie" valeur" si vous reprenez cette donnée ailleurs alors le " 01" n'existera plus.

Pour une donnée en "dur", il vous faut avoir une surveillance événementielle sur le "change" de la feuille qui détecte une nouvelle entrée/modification/suppression de valeur sur la feuille et ensuite le code VBA détermine où se trouve ce "change", afin d'y appliquer s'il le faut le rajout en dur du " 01".

@ bientôt

LouReeD

Merci LouReeD, effectivement avec le format de cellule j'ai le bon visuel, mais comme je suis amené à faire des recherche depuis mon tableau avec des copier/coller des numéros de commandes, alors il faudrait le mettre en dur avec du VBA...mais je ne sais pas faire...😢

A quoi correspond le " 01" ? Est il vraiment nécessaire ? D'où vient le chiffre de commande ? Vu qu'il y a déjà quelques chiffres on n'est pas à 3 caractères près...

@ bientôt

LouReeD

Malheureusement si...

Il faut même l'espace devant le " 01" car sinon les requêtes ne fonctionnent pas depuis mon logiciel maitre.

Voici le code VBA :

Private Sub Worksheet_Change(ByVal Target As Range)
    ' en cas d'erreur on passe à "Fin"
    On Error GoTo Fin
    ' si la cellule modifiée fait partie de la colonne N° de commande du tableau structuré portant le nom de "Tableau1"
    If Not Intersect(Target, Range("Tableau1[N° de commande]")) Is Nothing Then
        ' on désactive la surveillance évènementielle afin de ne pas entrée dans une boucle infinie
        Application.EnableEvents = False
        ' si les trois derniers caractères de la valeur de la cellule modifiée sont différents de " 01" alors on ajoute " 01"
        If Right(Target, 3) <> " 01" Then Target.Value = Target.Value & " 01"
    End If
Fin:
    ' on rétablie la surveillance évènementielle
    Application.EnableEvents = True
End Sub

et le fichier modifié en ce sens :

11commande-lrd.xlsm (16.03 Ko)

@ bientôt

LouReeD

Bonjour LouReed,

Merci pour le code, avec les explication tout semble simple 😉

Par contre impossible de faire fonctionner la macro dans le fichier joint. Tout semble activé de mon côté etc.

Je vais creuser un peu...

Bonsoir,

merci de votre retour et remerciement !

Normalement si toutes les options "Macro" en acceptation de ces dernières sont au vert alors cela devrait marcher.
si c'est un avertissement en "rouge" alors il faut faire un clic droit sur le fichier, aller dans propriété puis "débloquer" le fichier.

@ bientôt

LouReeD

Bonjour et Meilleurs Voeux
Ma contribution par formulaire de saisie.
J'ai considéré que la partie gauche du N° de commande avait toujours 8 chiffres.
Cdt
Papy Henri

7nickal-test1.xlsm (20.83 Ko)
Rechercher des sujets similaires à "insertion automatique chiffres fixes saisies"