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.

Rechercher des sujets similaires à "vba selectionner mois fonction annee"