[Déplacé .Net --> VBA] CELLULES VIDES SEMIANES JOURS OUVRES !!!

scoobydoos Messages postés 64 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 28 novembre 2010 - 19 oct. 2009 à 11:26
scoobydoos Messages postés 64 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 28 novembre 2010 - 22 oct. 2009 à 09:35
Bonjour,
Je ne sais pas si je suis dans le bon forum.

Mon soucis :
Je suis sous Excel 2007. J'ai un calendrier automatique (suivant l'année et le mois => affiche les week-end et jours fériés).
Jusque là tout va bien. J'ai une colonne où j'inscrit mes repos (CP, RTT, etc...).
Ce que je veux faire, c'est compter mes jours travaillés, c'est à dire les cellules qui sont vides mais du lundi au vendredi (sans les week-end) ?
Pourquoi je veux ca car les CP peuvent aussi être un samedi.
J'ai cherché sur le net mais sans succès...

Merci par avance

Cordialement

@+

ScoobyDooS

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 oct. 2009 à 12:58
Salut
Si tu dois scruter une suite de cellules = range, utilise la syntaxe standard :
Partons du principe que le nom des jours de la semaine (1 caractère) se trouve sur la ligne 1 et que les données se trouvent sur la ligne 2 (colonne A à colonne AE = de 1 à 31) :
    Dim maCell As Object
    Dim lCompteur As Long
    lCompteur = 0
    For Each maCell In Range("A2:AE2")
        If Not (maCell.Offset(-1, 0).Value = "S" Or _
                maCell.Offset(-1, 0).Value = "D") Then
            ' Pas un Samedi ni un Dimanche
            If maCell.Value = "" Then
                lCompteur = lCompteur + 1
            End If
        End If
    Next
    MsgBox lCompteur & " cellules vides hors S/D"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
scoobydoos Messages postés 64 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 28 novembre 2010
19 oct. 2009 à 13:54
D'accord, une petite précision :
Il faut que je nomme une cellule "maCell" ? c'est ca ?
Ou est-ce qu'il faut un bouton ?
Par contre, moi c'est le contraire, j'ai une colonne avec les noms des jours de la semaine et l'autre colonne avec mes données (CP ou RTT).

Merci encore
@+
ScoobyDooS
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 oct. 2009 à 19:22
maCell est défini (Dim) comme un objet (Object), c'est à dire une variable un peu globale qui représentrera chaque cellule du Range : rien à voir avec quelque chose d'existant. Regarde dans l'aide ce qui se dit sur la structure For Each
Si tu ouvres un classeur Excel pour tester le bout de programme que je t'ai passé ET
que tu as la curiosité de regarder l'aide des fonctions que tu pourrais ne pas connaitre, tu auras la solution à ta deuxième question.
Tu demandais à compter : Je t'ai proposé un code pour compter.
Place-le judicieusement dans ton code existant pour compter au moment où tu en as besoin.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
19 oct. 2009 à 22:21
Bonjour scoobydoos,

Si j'ai bien compris, tu as une colonne ou se trouvent les jours (par exemple de la ligne 2 à la ligne 32) l'un au dessous de l'autre et une autre ou tu écris en face, RTT ou CP. C'est bien ça ? (Quoi j'suis lourd )

Le premier problème, me semble-t-il sera de savoir comment on va différencier les Samedis et Dimanches des autres jours. Dans ta colonne des jours, pour que ce soit automatique, je suppose que tu travail avec des dates, non ?

Quoi qu'il en soit, qu'est-ce qui t'empêche d'utiliser une colonne (masquée ou bien où les caractères seraient de la même couleur que le fond pour paraitre invisibles) et y mettre une formule qui écrit 1 si la date n'est ni un samedi, n un dimanche et qu'il n'y à rien d'écrit dans la case de la colonne RTT/CP ? Tu n'aurais ensuite qu'à faire la somme de c'est 1 invisibles.

Par exemple si on dit que si les dates commencent en B2, les RTT/CP commencent en C2, tu peux avoir en D2 (à reproduire pour toute la colonnes) :
SI(ET(JOURSEM(B2;2)<>6;JOURSEM(B2;2)<>7;C2"");1;0)

à adapter si la colonne B ne contient pas des dates.

Te reste plus qu'à faire la somme de la colonne D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scoobydoos Messages postés 64 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 28 novembre 2010
22 oct. 2009 à 09:35
Bonjour,
Merci pour votre aide, j'ai réussi. C'est cool.

ScoobyDooS
0
Rejoignez-nous