Gestion fonction perso dans une procédure

Le
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
Vos réponses
Trier par : date / pertinence
Daniel.M
Le #337513
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" 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




ChrisV
Le #337478
Bonjour Chis Hon,

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


ChrisV


"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




Daniel.M
Le #337473
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" 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"
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








Chis Hon
Le #337389
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
Philippe.R
Le #337363
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" 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" 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"
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












Chis Hon
Le #337359
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" 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" 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" 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"
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
















ChrisV
Le #337775
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" 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" 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"
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












ChrisV
Le #337774
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"
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" 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" 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"
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
















Philippe.R
Le #337718
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"
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"
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" 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" 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"
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




















Publicité
Poster une réponse
Anonyme