Microsoft 365 MFC

Claudy

XLDnaute Accro
Bonjour à tous,
Je n'arrive pas à trouver la bonne MFC:
si le contenu de la cellule commence par un "4", alors format personnalisé "Blablaa"Standart"YYYY"(année en cours aujourd'hui)
sinon format standart.
1593086600669.png

Il reste au format standart!
Merci d'avance,
Claudy
 

Pièces jointes

  • 1593086481069.png
    1593086481069.png
    14.9 KB · Affichages: 7
Solution
re claudy
pour éviter une autre colonne une solution simple avec formulaire qui s'ouvre sur double clic dans une cellule colonne E
les textbox sont pré remplies. saisie du N° de facture et sur validation, la cellule active reçoit les informations concaténées. si le numéro commence par 4, information complète, sinon uniquement n° de facture
cordialement
galougalou

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un petit exemple avec ce que je comprends, à adapter à tes données, j'ai supposé qu'il s'agissait de date.
Ajout d'un second exemple si tu fais référence à une cellule qui ne contient pas une date.

JHA
 

Pièces jointes

  • FIchier exemple (MFC Claudy).xlsx
    15.6 KB · Affichages: 7
  • FIchier exemple (MFC Claudy bis).xlsx
    15.7 KB · Affichages: 4
Dernière édition:

Claudy

XLDnaute Accro
Bonjour JHA,
Merci,
Mais si je rentre un numéro de facture commençant par "4" ok pour =GAUCHE(A1;1)*1=4
mais après ce numéro j'aimerais(si possible) avoir 2020 l'année en cours, dans le Genre:

Blablabla 42546312/2020
Via une MFC...

A+
Claudy
 

job75

XLDnaute Barbatruc
Bonjour Claudy, JHA,

MFC ou pas un format personnalisé "pour l'année en cours" n'est pas possible.

Il faut un format personnalisé pour chaque année, fichier joint.

A+
 

Pièces jointes

  • MFC(1).xlsx
    9.6 KB · Affichages: 7

Claudy

XLDnaute Accro
Bonjour JOB75, merci,
Je connaissais ça, mais je croyais que ça pouvait se faire automatiquement!
Car quand je prendrai ma pension en fin 2020...en 2021 ça va rester 2020, Claudy ne sera plus là pour aider les collègues:rolleyes:

A+
Claudy
 

GALOUGALOU

XLDnaute Accro
bonjour claudy, bonjour le fil, bonjour le forum
je me demande quel est le réel besoin.
s'il s'agit d'informer et de figer une information, je vous propose d'oublier la mfc au profit d'une solution par vba dans évènements feuille.
en cellule d1 le commentaire blablabla
en cellule e1 l'année égale à aujourd'hui
en colonne d les différent numéro, et s'ils commencent par 4, affichage de l'information.
par double clic (mais vous pouvez choisir un autre évènement) dans une cellule de la colonne E (si celle-ci est vide), la formule se pose, concatène l'ensemble des informations, remplace la formule par sa valeur, l'information est figée. l'année est choisie en fonction de la date d'aujourd'hui.
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("e3:e1000"), Target) Is Nothing Then
If ActiveCell = "" Then
   ActiveCell.FormulaR1C1 = _
        "=IF(LEFT(RC[-1],1)=""4"",R1C4&"" ""&R6C4&""/""&R1C5,"""")"
        ActiveCell.Value = ActiveCell.Value
   Application.SendKeys ("{ENTER}")
End If
End If
End Sub
cordialement
galougalou
 

Pièces jointes

  • essai concatener information.xlsm
    17.5 KB · Affichages: 2

Claudy

XLDnaute Accro
bonjour claudy, bonjour le fil, bonjour le forum
je me demande quel est le réel besoin.
s'il s'agit d'informer et de figer une information, je vous propose d'oublier la mfc au profit d'une solution par vba dans évènements feuille.
en cellule d1 le commentaire blablabla
en cellule e1 l'année égale à aujourd'hui
en colonne d les différent numéro, et s'ils commencent par 4, affichage de l'information.
par double clic (mais vous pouvez choisir un autre évènement) dans une cellule de la colonne E (si celle-ci est vide), la formule se pose, concatène l'ensemble des informations, remplace la formule par sa valeur, l'information est figée. l'année est choisie en fonction de la date d'aujourd'hui.
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("e3:e1000"), Target) Is Nothing Then
If ActiveCell = "" Then
   ActiveCell.FormulaR1C1 = _
        "=IF(LEFT(RC[-1],1)=""4"",R1C4&"" ""&R6C4&""/""&R1C5,"""")"
        ActiveCell.Value = ActiveCell.Value
   Application.SendKeys ("{ENTER}")
End If
End If
End Sub
cordialement
galougalou
Merci Galougalou...
N'est il pas possible en rentrant directement dans la colonne E d'avoir le résultat demandé, sans passer par une colonne supplémentaire?
Merci,
Claudy
 

GALOUGALOU

XLDnaute Accro
re claudy
pour éviter une autre colonne une solution simple avec formulaire qui s'ouvre sur double clic dans une cellule colonne E
les textbox sont pré remplies. saisie du N° de facture et sur validation, la cellule active reçoit les informations concaténées. si le numéro commence par 4, information complète, sinon uniquement n° de facture
cordialement
galougalou
 

Pièces jointes

  • essai concatener information v2.xlsm
    18.5 KB · Affichages: 7

job75

XLDnaute Barbatruc
Re, bonjour GALOUGALOU,

Oh là un USF, ça sent le gaz !

Si l'on veut que le format personnalisé "Blablabla "Standard"/<année en cours>" s'adapte à l'année en cours il faut du VBA.

Et une MFC n'est pas nécessaire, voyez le fichier joint et cette macro :
VB:
Private Sub Worksheet_Calculate()
With [D5] 'cellule à adapter
    .NumberFormat = "General"
    If Left(.Value, 1) = "4" Then .NumberFormat = """Blablabla ""General""\" & Year(Date) & """"
End With
End Sub
Pour que cette macro s'exécute automatiquement à l'ouverture du fichier ou quand on modifie une cellule il faut dans la feuille une formule volatile.

Par exemple en D4 ="Année en cours : "&ANNEE(AUJOURDHUI())

A+
 

Pièces jointes

  • VBA Format personnalisé(1).xlsm
    15.9 KB · Affichages: 7

GALOUGALOU

XLDnaute Accro
re job75
j'ai confiance dans les formulaires, et dans ce cas précis je n'avais pas précisé, mais la textbox qui charge l'année, le fait a partir de la cellule E1 qui contient la formule suivante
VB:
=ANNEE(AUJOURDHUI())
-le commentaire a partir de la celule D1, ce qui laisse toute latitude à l'opérateur de modifier la saisie d'information, ou dans la cellule pour une information perenne, ou dans le textbox pour une information ponctuelle.
-le n° de facture directement dans le textbox, cette information devrait être différente à chaque saisie.
j'ai pensé que la validation pourrait être plurielles, et donc l'information sera validée dans la cellule qui aura déclenché l'ouverture du formulaire et ne sera plus modifiable.

avec votre solution et celle de nos collègues du fil, claudy n'a plus que l'embarras du choix. A elle d'apprécier la solution qui convient le mieux à sa problématique.
cordialement
galougalou
 

Claudy

XLDnaute Accro
Re bonjour et encore merci pour votre aide...
J'ai essayé ceci:
VB:
Private Sub Worksheet_Calculate()
Dim target As Range
If Not Intersect(target, Range("D3", "D" & Range("D65536").End(xlUp).Row)) Is Nothing Then
'If Target.Count > 1 Then Exit Sub

With ActiveCell 'cellule à adapter
    .NumberFormat = "General"
    If Left(.Value, 1) = "4" Then .NumberFormat = """Blablabla ""General""\" & Year(Date) & """"
End With

End If
End Sub
snif...ça bugge
A+
Claudy
 

Discussions similaires

Réponses
4
Affichages
369

Statistiques des forums

Discussions
314 074
Messages
2 105 380
Membres
109 344
dernier inscrit
niconoirnoir