Partie fixe d'un format personnalisé

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

M

mat7775

Guest
Salut le forum,

Dans ma feuille, je souhaite créer un format personnalisé qui serait constituer de la manière qui suit :
- le début, de manière fixe, c'est le contenu d'une cellule de ma feuille (type un code "M1" calculé à partir du nom de l'onglet
- un tiret de séparation
- un incrément de 1 en 1.

Le but est que dans ma cellule, je vais tapé 1, et il va m'afficher "M1-001".
La partie compliqué de ma question est de récupérer dans le format le code du début qui est dans une cellule (je pourrais le mettre en dur dans le format, mais j'ai beaucoup de feuilles dans mon classeur, et je voudrais automatiser...)

Merci pour votre aide
Mat
 

Pièces jointes

Re : Partie fixe d'un format personnalisé

Re,

Dsl, oublie le post précédent, essaie plutôt comme ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Count > 1 Then Exit Sub
If Target.Column <> 2 Or Target.Row < 4 Then Exit Sub
Application.EnableEvents = False
    If Not IsEmpty(Target) Then
        If Evaluate("countif($B:$B,""" & Range("A1") & "-" & CStr(Format(Target, "000")) & """)") = 0 Then
             Target.Value = Range("A1") & "-" & Format(Target, "000")
        Else
             Target.Value = ""
             Target.Select
        End If
    End If
Application.EnableEvents = True
End Sub
 
Re : Partie fixe d'un format personnalisé

Euh, sinon, à vrai dire, je suis parti sur la première macro proposée qui me va très bien.
J'ai juste adapté pour ne le faire que sur les feuilles dont le nom commence par "M" parce que j'ai une feuille qui contient mes listes. Et puis aussi, je ne veux que le code de départ du nom de la feuille... Il y avait aussi une petite erreur sur le format lui-même. Je travaille en excel anglophone, et il semble qu'il faut un "\" en début de format. Au final, ça me donne :

Code:
Sub formatperso()
'
Dim nf As String
Dim nbf As Integer
Dim test As String


nbf = Worksheets.Count

    For i = 1 To nbf
            
        Sheets(i).Select
        If Left(ActiveSheet.Name, 1) = "M" Then
            nf = ActiveSheet.Range("a1").Value
            Range("B24:B49").Select  'selectionne ici la colonne que tu veux formater
            Selection.NumberFormat = "\" & nf & "-" & "000"
        End If
        
    Next


End Sub

Merci à tous!
 
Dernière modification par un modérateur:
- 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
4
Affichages
199
Réponses
3
Affichages
326
Réponses
6
Affichages
448
Retour