Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
[Résolu] Trouver le numéro de mois à partir d'un texte en VBA
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 !
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
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
- 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