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é

Bjr,

Copie ce bout de code dans un module

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

nbf = Worksheets.Count

    For i = 1 To nbf
    
        Sheets(i).Select
        nf = ActiveSheet.Name
        Range("A:A").Select  'selectionne ici la colonne que tu veux formater
        Selection.NumberFormat = nf & "-" & " 000"
        
    Next


End Sub

A+
 
Re : Partie fixe d'un format personnalisé

Slt hoerwind,

Coquin !!! tu ne lis pas l'énoncé du problème.
Ca me rappelle moi à l'école. 😀

Il ne veut rentrer en dur le nom de la feuille dans les formats personnalisés, car trop de feuille.

Polission va ! 😛

je cite :

(je pourrais le mettre en dur dans le format, mais j'ai beaucoup de feuilles dans mon classeur, et je voudrais automatiser...)
 
Re : Partie fixe d'un format personnalisé

De la part de James (qui ne m'en voudra pas, j'en suis sur)

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Row < 4 Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Not IsEmpty(Target) Then Target.Value = Range("A1") & "-00" & Target
Application.EnableEvents = True
End Sub
 
Re : Partie fixe d'un format personnalisé

Bonjour natorp,

A ta demande ... le code :
Code:
Private Sub Worksheet_Change(ByVal Target 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 Target.Value = Range("A1") & "-00" & Target
Application.EnableEvents = True
End Sub

Edit : merci ballmaster ...

A +
 
Re : Partie fixe d'un format personnalisé

Bonjour,
Dans ma feuille, je souhaite créer un format personnalisé...
- 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"
C'est un incrément automatique en mode manuel !?
Ne serait-ce pas plus simple avec une formule en colonne B qui renvoie un N° dès lors qu'une valeur est saisie en colonne C, D ou...
@ballmaster : s'il y a 250 feuilles....!
A+
kjin
 
Re : Partie fixe d'un format personnalisé

Re:

Pour affiner le traitement, serait-il possible de tester la présence dans la colonne d'une série déjà présente ? et éviter les doublons :

on tape "2", si M1-002 existe : vidage de la cellule et message d'erreur

merci, Gérard
 
Re : Partie fixe d'un format personnalisé

Bonjour,

à partir du code de James, tu peux tester :

VB:
Private Sub Worksheet_Change(ByVal Target 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 not Columns(2).find(what:=Target, lookin:=xlvalues, lookat:=xlwhole) is Nothing then
             Target.Value = Range("A1") & "-" & format(Target, "000")
        else 
             Target.value = ""
        end if
    end If
Application.EnableEvents = True
End Sub
 
Dernière édition:
Re : Partie fixe d'un format personnalisé

pas sûre d'avoir bien compris,
un essai de code :

Sub Macro1()
Dim nbf As Integer
nbf = Worksheets.Count
For i = 1 To nbf
Sheets(i).Select
Range("A1").Select
Selection.Value = i
Selection.NumberFormat = """MI _ ""000"
Next

End Sub
 
Re : Partie fixe d'un format personnalisé

Bonjour,

C'est un incrément automatique en mode manuel !?
Ne serait-ce pas plus simple avec une formule en colonne B qui renvoie un N° dès lors qu'une valeur est saisie en colonne C, D ou...
@ballmaster : s'il y a 250 feuilles....!
A+
kjin

Salut Kjin, je n'ai jamais parlé d'incrément automatique!
et quand bien même, le faire automatiquement est réalisable par plein de moyen, et même sans formule ni macro!
Mais merci de l'aide dans tous les cas.
 
- 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