VBA - Selectionner un mois en fonction d'une année
Bonjour à touts et à toutes !
J'ai pu résoudre récemment grâce à vous un problème que j'avais et... il m'en arrive déjà un autre !
Dans mon document, je dois choisir un mois pour afficher des données, mais je me suis rendu compte qu'il fallait aussi prendre l'année en compte... J'ai modifier la formule mais ça ne marche pas...
Je peux pas mettre le fichier en PJ car trop lourd, je mets le code concerné :
Sub SyntheseMois()
Dim NbrePHctrl As Integer
Dim NbrePHconf As Integer
Dim comptFSoui As Integer
Dim comptFSnon As Integer
On Error GoTo fin
'Demande du mois et de l'année concerné
Dim MoisChoisi As Integer
Dim AnneeChoisie As Integer
Dim PremiereLigne As Integer
Dim LigneSelectionnee As Integer
Dim ColonneDate As Integer
Do
MoisChoisi = InputBox("Mois concerné (de 1 à 12):", "Choix du mois", 1)
Loop Until MoisChoisi > 0 And MoisChoisi < 13
[Surligner][Surligner]Do
AnneeChoisie = InputBox("Année concernée (de 2015 à 2099):", "Choix de l'année", 2016)
Loop Until AnneeChoisie > 2014 And AnneeChoisie < 2100
Range("L1").Value = " Synthèse Mois " & MoisChoisi
'Premiere ligne du tableau a prendre en compte
PremiereLigne = 11
LigneSelectionnee = PremiereLigne
'Boucle de calcul des valeurs
ColonneDate = 2
Do While Cells(LigneSelectionnee, ColonneDate).Value <> ""
MoisSelectionne = Month(Cells(LigneSelectionnee, ColonneDate))
If MoisSelectionne = MoisChoisi Then
NbrePHctrl = NbrePHctrl + Cells(LigneSelectionnee, 9).Value
NbrePHconf = NbrePHconf + Cells(LigneSelectionnee, 10).Value
If Cells(LigneSelectionnee, 13) = "O" Then comptFSoui = comptFSoui + 1
If Cells(LigneSelectionnee, 13) = "N" Then comptFSnon = comptFSnon + 1
End If
LigneSelectionnee = LigneSelectionnee + 1
Loop
Do While Cells(LigneSelectionnee, ColonneDate).Value <> ""
AnneeSelectionnee = Year(Cells(LigneSelectionnee, ColonneDate))
If AnneeSelectionnee = AnneeChoisie Then
NbrePHctrl = NbrePHctrl + Cells(LigneSelectionnee, 9).Value
NbrePHconf = NbrePHconf + Cells(LigneSelectionnee, 10).Value
If Cells(LigneSelectionnee, 13) = "O" Then comptFSoui = comptFSoui + 1
If Cells(LigneSelectionnee, 13) = "N" Then comptFSnon = comptFSnon + 1
End If
LigneSelectionnee = LigneSelectionnee + 1
Loop
'Affiche les resultats concernant les phases
Range("AB1").Value = NbrePHconf
Range("AB2").Value = NbrePHctrl - NbrePHconf
Range("AB3").Value = comptFSoui
Range("AB4").Value = comptFSnon
Range("A11").Activate
' Si aucune phase controlee...genere une erreur
fin:
If NbrePHctrl = 0 Then rep = MsgBox("Aucune phase controlée mois " & MoisChoisi, 16, "Information")
End Sub
Merci d'avance de votre aide !!
Un petit conseil pour avoir plus de chances à décrocher des réponses, rendre votre message plus confortable et plus agréable à lire, et ainsi mettre votre macro dans une balise code.
Je ne sais pas ce qu'est une balise code... :/
Bonjour,
Ce n'est pas le problème. Quand tu rédiges le message, tu as plusieurs outils pour bien présenter le message dont un qui s'appelle "Code". C'est ça la balise. Si tu sélectionne une partie d'un texte et tu cliques sur cet outil, la présentation est différente et lisible comme un code d'un programme. C'est pour la lisibilité du code.
Maintenant, il vaut mieux que tu joignes ton fichier qui contient ta macro code afin de mieux cerner ton problème et de te conseiller.