Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion fonction perso dans une procédure

9 réponses
Avatar
Chis Hon
Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon

9 réponses

Avatar
Daniel.M
Salut,

Certainement:
Sub SaisieMois2()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", D_ENG(Date, "mmmm"))
End Sub

Également, je suis d'avis que ta fonction D_ENG existe déjà en VBA (elle
s'appelle format). Tu pourrais donc remplacer ta dernière ligne par :

MoisEnCours = InputBox("Mois en cours", "MOIS", Format(Date, "mmmm"))

Salutations,

Daniel M.

"Chis Hon" wrote in message
news:
Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon




Avatar
ChrisV
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon




Avatar
Daniel.M
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon








Avatar
Chis Hon
Merci à tous les deux pour les réponses,

Je me rends compte que je me suis un peu "embourbé" tout seul...j'aurais pu
trouver la solution avec la fonction perso..mais j'ai du partir sur une
mauvaise voie !

En tout cas la solution de chrisV m'évite la fonction personnalisée.
Application.text n'est à priori pas documenté dans l'aide Vba mais me
renvoie le mois en anglais et c'est le résultat voulu (par contre je
comprends pas bien comment ca marche)!

Pour répondre à la question de Daniel.M, Format(Date,"mmmm") renvoie
"janvier" avec la version française d'excel. C'est pourquoi j'utilisais une
fonction personnalisée pour la renvoyer en anglais.

Chris Hon
Avatar
Philippe.R
Bonsoir Daniel,
Mon grain de sel : January chez moi avec XL Français (donc VBA l'emporte sur le reste !?!)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel.M" a écrit dans le message de
news:
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon












Avatar
Chis Hon
Bizarre,
Je viens de retester et chez moi ca renvoi bien janvier...
XL 2003 Fr
Windows XP Fr (Paramètre régionaux en Français)

Chris Hon

"Philippe.R" a écrit dans le message de
news:
Bonsoir Daniel,
Mon grain de sel : January chez moi avec XL Français (donc VBA l'emporte
sur le reste !?!)

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel.M" a écrit dans le message de
news:
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon
















Avatar
ChrisV
Salut Daniel,

Format(Date, "mmmm") renvoie bien le mois en français

alors que
Application.Text(Date, "mmmm") le renvoie en anglais


ChrisV


"Daniel.M" a écrit dans le message de
news:
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon












Avatar
ChrisV
Salut Philippe,

... January chez moi


Format(Date,"mmmm") ou Application.Text(Date, "mmmm") ?

...donc VBA l'emporte sur le reste


oui et non... cf plus haut...
;-)


ChrisV


"Philippe.R" a écrit dans le message de news:

Bonsoir Daniel,
Mon grain de sel : January chez moi avec XL Français (donc VBA l'emporte
sur le reste !?!)

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel.M" a écrit dans le message de
news:
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon
















Avatar
Philippe.R
Merci ChrisV pour ces esseuplications :
"======================================"
Format(Date, "mmmm") renvoie bien le mois en français

alors que
Application.Text(Date, "mmmm") le renvoie en anglais
"======================================"
C'était bien ce dernier que j'avais testé
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"ChrisV" a écrit dans le message de news:
Salut Philippe,

... January chez moi


Format(Date,"mmmm") ou Application.Text(Date, "mmmm") ?

...donc VBA l'emporte sur le reste


oui et non... cf plus haut...
;-)


ChrisV


"Philippe.R" a écrit dans le message de news:

Bonsoir Daniel,
Mon grain de sel : January chez moi avec XL Français (donc VBA l'emporte
sur le reste !?!)

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Daniel.M" a écrit dans le message de
news:
Salut Chris,

Ta solution pique ma curiosité: Sur une version française d'XL,
Format(Date,"mmmm") retourne-t-il January ou Janvier?

Salutations,

Daniel M.

"ChrisV" wrote in message
news:%
Bonjour Chis Hon,

Sub SaisieMois()
Dim MoisEnCours As String
MoisEnCours = InputBox("Mois en cours", "MOIS", _
Application.Text(Date, "mmmm"))
End Sub


ChrisV


"Chis Hon" a écrit dans le message de news:

Bonsoir,

Soit la macro et la fonction suivante :

Option Explicit
Sub SaisieMois()
'
' Macro2 Macro
' Macro enregistrée le 19/01/2004 par Chris Hon

Dim toto As String
Dim MoisEnCours As String
Range("A1").Select
ActiveCell.FormulaR1C1 = "=D_ENG(TODAY(),""mmmm"")"
toto = ActiveCell.Value
ActiveCell.Value = ""
MoisEnCours = InputBox("Mois en cours", "MOIS", toto)
End Sub

Function D_ENG(D As Long, Optional Format As String) As String
If Format = "" Then Format = "dd mmmm yyyy"
D_ENG = Evaluate("TEXT(" & D & ",""" & Format & """)")
End Function


Y-a t'il moyen d'afficher dans l'inputbox le résultat de la fonction
personnalisée sans être obligé de passer par la feuille de calcul ?
Je ne trouve pas de solution à ce problème !

Chris Hon