XL 2010 calcul entre 2 date 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 !

racalbuto

XLDnaute Nouveau
bonsoir a tous.
j ai un classeur ou je calcul le nombre de fois ou il y a la lettre p dans chaque cellule et cela en fonction de 2 date sa fonctionne tres bien toutefois j'aimerai faire exactement la meme chose mais en vba a partir d un clic sur un bouton. c est possible? personnellement j ai tenté mais je n y arrive pas. pouvez vous m'aider???? merci d avance.je dépose le fichier j aimerai vraiment transformer cette formule en vba ..... merciiii
 

Pièces jointes

Solution
Bonsoir,
Le même avec les commentaires qui manquaient un peu. 🙂
VB:
Function NbP(CellD, CellF, DateDébut As Date, DateFin As Date)
    ' On refera le calcul à chaque recalcul de la feuille
    Application.Volatile
    ' On extrait ligne et colonne de la première cellule du tableau
    LigD = CellD.Row: ColD = CellD.Column
    ' On extrait ligne et colonne de la dernière cellule du tableau
    LigF = CellF.Row: ColF = CellF.Column
    ' Nbp sera le nombre de "p" trouvés. On l'initialise à 0.
    NbP = 0
    ' Pour toutes les lignes du tableau
    For i = LigD + 1 To LigF
        ' On compte les "p" si la date en ligne LigD est compris entre les dates DateDébut et DateFin
        NbP = NbP + Application.CountIfs(Range(Cells(i, ColD)...
Bonsoir,
En PJ un essai avec une fonction :
VB:
Function NbP(PlageDate As Range, PlageP As Range, DateDébut As Date, DateFin As Date)
    NbP = Application.CountIfs(PlageP, "p", PlageDate, ">=" & CLng(DateDébut), PlageDate, "<=" & CLng(DateFin))
End Function
Qui peut évidemment être utilisée en macro comme dans l'exemple.
 

Pièces jointes

Effectivement c'était moins simple.
En PJ un ex avec :
VB:
Function NbP(CellD, CellF, DateDébut As Date, DateFin As Date)
    Application.Volatile
    LigD = CellD.Row: ColD = CellD.Column
    LigF = CellF.Row: ColF = CellF.Column
    NbP = 0
    For i = LigD + 1 To LigF
        NbP = NbP + Application.CountIfs(Range(Cells(i, ColD), Cells(i, ColF)), "p", _
        Range(Cells(LigD, ColD), Cells(LigD, ColF)), ">=" & CLng(DateDébut), _
        Range(Cells(LigD, ColD), Cells(LigD, ColF)), "<=" & CLng(DateFin))
    Next i
End Function
Par contre la syntaxe a changé. Voir dans le fichier.
( La ligne 25 ne sert qu'à la vérif )

Je pense qu'il y a plus simple mais j'ai buté sur la syntaxe du Sommeprod.
 

Pièces jointes

Bonsoir,
Le même avec les commentaires qui manquaient un peu. 🙂
VB:
Function NbP(CellD, CellF, DateDébut As Date, DateFin As Date)
    ' On refera le calcul à chaque recalcul de la feuille
    Application.Volatile
    ' On extrait ligne et colonne de la première cellule du tableau
    LigD = CellD.Row: ColD = CellD.Column
    ' On extrait ligne et colonne de la dernière cellule du tableau
    LigF = CellF.Row: ColF = CellF.Column
    ' Nbp sera le nombre de "p" trouvés. On l'initialise à 0.
    NbP = 0
    ' Pour toutes les lignes du tableau
    For i = LigD + 1 To LigF
        ' On compte les "p" si la date en ligne LigD est compris entre les dates DateDébut et DateFin
        NbP = NbP + Application.CountIfs(Range(Cells(i, ColD), Cells(i, ColF)), "p", _
        Range(Cells(LigD, ColD), Cells(LigD, ColF)), ">=" & CLng(DateDébut), _
        Range(Cells(LigD, ColD), Cells(LigD, ColF)), "<=" & CLng(DateFin))
    Next i
End Function
 
Bonjour at tous
j aimerai votre aide svp merci...
j ai une sub qui me place les jours et dates du mois de janvier et j aimerai une boucle qui me trouve tous les lundi et remonte une ligne avec offset -1 pour me placer le numéro de la semaine puis qu' elle passe à la sheets février et ainsi de suite. merci d'avance .....
 

Pièces jointes

- 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

Réponses
125
Affichages
12 K
Réponses
5
Affichages
2 K
Retour