[Résolu] Trouver le numéro de mois à partir d'un texte en VBA

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • 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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

Cela va vous paraître simple mais je m'y perd un peu dans les formats de dates 😱.

J'ai un texte: janvier. Comment en VBA touver que c'est le mois 1 ?

Merci d'avance 🙂.
 
Dernière édition:
Re : Trouver le numéro de mois à partir d'un texte en VBA

Bonjour Michel🙂,

regarde peut être ceci, si cela peut t'aider à avancer :
Code:
Dim i As Byte, t(1 To 12)
For i = 1 To 12
    t(i) = MonthName(i)
Next i
MsgBox Application.Match("mars", t, 0)
bonne journée
@+
 
Re : Trouver le numéro de mois à partir d'un texte en VBA

Bonjour Mj13,

Je vais essayer d'être plus brillant qu'hier ou j'ai oublié la moitiè de la formule , ....

Voici une solution possible, la liste est à adapter à la syntaxe utilisée pour l'écriture des mois .

Code:
Sub NomMois()
Dim ListeMois As String
Dim MoisRecherché As String
Dim NumMois As Integer
MoisRecherché = InputBox("Mois en texte")
ListeMois = ("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre")
Do
  NumMois = NumMois + 1
Loop Until MoisRecherché = Split(ListeMois, ",")(NumMois - 1) Or NumMois = 12
MsgBox MoisRecherché & "  =  " & Right("0" & NumMois, 2)
End Sub
 
Re : Trouver le numéro de mois à partir d'un texte en VBA

bonjour tous🙂🙂🙂

Code:
MsgBox Month("01/" & "janvier" & "/2000")

ou dans cellule a1 par exemple

Code:
MsgBox Month("01/" & [a1] & "/2000")

merci Pierrot🙂
 
Dernière édition:
Re : Trouver le numéro de mois à partir d'un texte en VBA

Bonjour à tous

Et bien, merci beaucoup à tous. Cela fait plaisir 🙂.

Toutes ces approches sont fortes instructives et fonctionnent parfaitement 😱.

Du coup, toute cette émulation m'a fait penser à 2 autres.

Une sur le principe de camarchepas avec un array qui permet de se passer de la casse:

Code:
Sub Mois_Trouve_Texte_En_valeur()
'Dim ListeMois As Variant
MoisATrouver = InputBox("Mois à Trouver en valeur  à partir du texte ?")
ListeMois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
For i = 0 To 11
 'MsgBox ListeMois(i)
 If UCase(MoisATrouver) = UCase(ListeMois(i)) Then mois = i + 1
Next i
MsgBox mois
End Sub


Une à tester sur le fichier de Roger en sélectionnant les textes des mois.

Code:
Sub test2()
On Error Resume Next
For Each cell In Selection
cell.Select
ActiveCell.Offset(0, 3) = Month(CDate("01/" & ActiveCell.Text))
Next
End Sub
 
Re : [Résolu] Trouver le numéro de mois à partir d'un texte en VBA

Bonjour à tous 😉

Un essai d'une autre fonction (pour le fun) qui devrait être indépendante de la casse et des accents (sauf à vouloir en mettre à des positions incongrues type jänvier)
VB:
Function NumMois(x)
Dim i, j, y, LesMois(1 To 4) As String, t
  NumMois = ""
  If Trim(x) = "" Then Exit Function
  LesMois(1) = ",f,,,,,,,s,o,n,d"
  LesMois(2) = "ja,,,av,,,,ao,,,,"
  LesMois(3) = ",,mar,,mai,,,,,,,"
  LesMois(4) = ",,,,,juin,juil,,,,,"
  For i = 1 To 4
    y = LCase(Left(x, i))
    t = Split(LesMois(i), ",")
    For j = 0 To 11
      If y = t(j) Then Exit For
    Next j
    If j <= 11 Then
      NumMois = j + 1
      Exit Function
    End If
  Next i
End Function
 

Pièces jointes

Dernière édition:
Re : [Résolu] Trouver le numéro de mois à partir d'un texte en VBA

Suite...


Une autre :​
Code:
=SI(ESTERR(MOIS(1&B1));MOIS(1&SUBSTITUE(GAUCHE(B1;3);"e";"é"));MOIS(1&B1))
Tant pis pour nos "amis" anglo-saxons...​



ROGER2327
#6373


Mercredi 11 Décervelage 140 (Saint Eustache, libérateur - fête Suprême Quarte)
19 Nivôse An CCXXI, 6,2728h - marbre
2013-W02-2T15:03:17Z
 
- 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

Discussions similaires

Retour