(RESOLUT par BERNARD) Format personnalisé (sans vba)

chaelie2015

XLDnaute Accro
Bonjour Forum
Je cherche un format personnalisé dans une cellule (Colonne A) de cette manière
Colonne S (colonne des NOM)
Colonne O( colonne des date)
Si je saisie dans la cellule S3 = Charlie M.
Et dans la cellule O3 = 12/03/2015
Et si je saisie dans la cellule A3 (Exemple : 4) je souhaite avoir dans cette cellule A3 ( sans VBA)
FORMAT : 004-CM-BELG-2015
C a d le Numéro saisi dans A3 -les initiales de la cellule S3 -BELG-année de la date de O3

Salutations
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Format personnalisé (sans vba)

Bonsoir.
Comment voulez vous qu'un format aille chercher des info dans d'autres cellules, ou à défaut mettre une formule ou un texte différent de ce que vous tapez sans l'aide de VBA ?
La formule pour une autre cellule est déjà assez compliquée :
Code:
=TEXTE(A3;"000")&"-"&GAUCHE(S3;1)&STXT(S3;CHERCHE(" ";S3&" ")+1;1)&"-BELG-"&ANNEE(O3)
En VBA, dans le module de la feuille :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge <> 1 Or Target.Column <> 1 Then Exit Sub
If IsEmpty(Target.Value) Then Exit Sub
Application.EnableEvents = False
Target.FormulaR1C1 = "=""" & Format(Val(Target.Value), "000") & _
   "-""&LEFT(RC19,1)&MID(RC19,SEARCH("" "",RC19&"" "")+1,1)&""-BELG-""&YEAR(RC15)"
Application.EnableEvents = True
End Sub
Si vous tenez a votre format vous pouvez ne pas changer FormulaR1C1 et mettre à la place :
VB:
Target.NumberFormat = "000""-" & Left$(Target.Offset(, 18), 1) & Mid$(Target.Offset(, 18), _
   InStr(Target.Offset(, 18) & " ", " ") + 1, 1) & "-BELG-" & Year(Target.Offset(, 14)) & """"
Mais ça ne changera plus si vous changez en colonne O ou S, et si c'est à faire sur beaucoup de lignes ça va faire beaucoup de formats…
 
Dernière édition:

Discussions similaires