Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Convertir formulle en vba

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

Ilino

XLDnaute Barbatruc
Bonsoir Forum
Code:
=SOMMEPROD((JOURSEM(LIGNE(INDIRECT(C1&":"&D1)))>1) *1)-SOMMEPROD(((JOURSEM(Ferie)>1))*(Ferie>=C1)*(Ferie<=D1))
Qlq un peut m'aider a convertire cette formule en VBA
MERCI
 
Re : Convertir formulle en vba

Re Bonsoir Regueiro
Grazie pour la réponse c'est exactement ce que je cherchais
mais j'ai un autre souci !!! comment faire pour modifier le week end de (SAMEDI DIMANCHE) a ( LUNDI MARDI)
a+
 
Re : Convertir formulle en vba

Bonjour Ilino, le fil,

Je suppose qu'il s'agit encore une fois du même fichier et de la suite de ce fil :

https://www.excel-downloads.com/threads/clignote-la-cellule-date-si-a-depasse-la-date-today.199787/

Alors pourquoi ne pas continuer avec la macro existante :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'ligne de titres en ligne 1
Dim r As Range, c1 As Range, c2 As Range, i&, n&
Set r = Intersect([K:K,R:R,S:S], Rows("2:" & Rows.Count))
Set r = Intersect(Target, r, Me.UsedRange)
If Not r Is Nothing Then
  Application.EnableEvents = False 'désactive les événements
  For Each r In r 'si plusieurs cellules
    Set c1 = Cells(r.Row, "K"): Set c2 = Cells(r.Row, "R")
    If Not IsDate(c1) Then c1 = ""
    If IsDate(c2) Then If c2 < c1 Then c2 = ""
    If IsDate(c2) Then
      While Weekday(c2, 2) > 5 Or _
        Application.CountIf([Fériés], c2) 'si le jour n'est pas ouvré
        c2 = c2 + 1
      Wend
      If IsDate(c1) Then 'nombre de jours ouvrés
        For i = Int(c1) To Int(c2)
          If Weekday(i, 2) < 6 And _
            Application.CountIf([Fériés], i) = 0 Then n = n + 1
        Next
        c2(1, 2) = n 'colonne S
      Else
        c2(1, 2) = "" 'colonne S
      End If
    Else
     c2 = IIf(IsDate(c1), "Date en attente", "")
     c2(1, 2) = "" 'colonne S
    End If
  Next
  Application.EnableEvents = True 'réactive les événements
End If
End Sub
Vous avez pourtant de la suite dans les idées Ilino, alors quoi, ça ne vous convient pas ?

Fichier (3).

A+
 

Pièces jointes

Dernière édition:
Re : Convertir formulle en vba

Bonjour Forum
Je suis désolé, et merci pour votre patiente.
Problème Résolut

Ciao Forum
Mi dispiace, e vi ringrazio per la vostra pazienza.
Problema Risoluz
 
- 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
2
Affichages
141
Réponses
16
Affichages
1 K
Réponses
8
Affichages
165
  • Question Question
Microsoft 365 Catégorisation
Réponses
5
Affichages
572
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…