Vba excel (compter 2 conditions) [Résolu]

Signaler
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
-
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
-
bonjour,

Je sèche sur un code et je sollicite votre aide.
dans un tableau excel j'ai 3 colonnes de 31 lignes (range("a3:c33"):
- 1ere colonne : jour de la semaine
- 2eme colonne : date
- 3eme colonne : case de couleur correspondant à un horaire de travail (couleur 39)

je voudrais compter en "d43" le nombre de samedi(dans la colonne 1) travaillé en fonction de la case de couleur sur la même ligne (dans la colonne 3)

Merci de votre aide.

9 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Maintenant :*
si ton problème est résolu === >> clique sur le tag "réponse acceptée" et libère ce sujet .
Et (mais plus tard) intéresse-toi donc à ce que sont les fonctions personnalisées, dans la foulées. Une fois créées, elles peuvent être appelées comme toute autre fonction Excel, dans une formule de cellule.
Pour moi, ce sujet s'arrête là.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014

merci pour les infos.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
1) tu t'es trompé de section ! tu ne développes pas sous VB6, mais sous VBA !
2) sous quel format sont donc tes "jours de la semaine" en colonne A

Pourquoi nous parler ici de la colonne 2 ? Je ne vois pas à quoi elle servirait dans ton affaire.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014

Désolé si je ne suis pas au bon endroit !

La colonne 2 est présente même si je ne m'en sert pas pour l'instant, par contre je ne comprends pas ta question "sous quel format" ?
Lundi
Mardi
etc ...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Tu viens de répondre, en ce qui concerne le format

Le problème qui est le tien et que l'une des conditions est un texte et l'autre une couleur.
Tu n'as cependant que que 31 lignes, dis-tu. Et je crois comprendre que tu veux ton résultat à la ligne qui suit la dernière, en colonne D
J'aurais été assez tenté de t'inviter à créer une fonction personnalisée et à l'utiliser en formule dans ta cellule D34, mais pour si peu de lignes :
Une simple boucle For to next sur les 31 lignes de ta colonne A. Pour chaque valeur relevée : si "Samedi" ===>> alors on regarde la couleur de la cellule de même rang en colonne C ===>> si 39 ===>> on incrémente de 1 une variable compteur.
On affiche le résultat du compteur en colonne D, à la ligne 34
Voilà.
Commence par tenter d'écrire toi-même ce petit bout de code fort simple.
Reviens (en nous le montrant) si encore difficultés.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014

Si je poste ici c'est que pour moi c'est pas si simple, ça fait plusieurs semaines que j'essaie et je ne trouve pas.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
ça fait plusieurs semaines que j'essaie et je ne trouve pas.

oh !
(j'ai su faire ce genre de chose dès les premières heures de mon apprentissage de VBA/Excel ! ... il est vrai_ que je m'étais efforcé de lire mon aide VBA ! )
tu veux du tout cuit ? ===>> Bon ===>> à main levée ===>>
compteur = 0
  for i = 3 To 33
    if range("A" & i).text "Samedi" and range("C" & i).interior.colorindex 39 Then
       compteur = compteur + 1
    end if
  next
  range("D34").value = compteur

j'ai mis interior.colorindex = 39 car je ne sais pas si tu as colorié la police en 39 ou si tu as rempli de la couleur 39. (j'ai supposé que tu avais rempli de la couleur 39).
Ne te contente pas de copier ! Analyse ! ouvre au besoin (super conseillé) ton aide VBA.
Bon dimanche et bonne étude.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014

Merci pour le code je ne savais pas comment chercher la seconde condition sur la même ligne je m’entêtais à utiliser la fonction cell.offset.

Quand tu parles d'aide VBA tu parles de l'aide microsoft en ligne ?

Je cherche également comment trouver le numéro des couleurs, j'ai essayé en enregistrant une macro et en cliquant sur une couleur puis voir dans le code le numéro mais ça me donne un numéro à virgule et à rallonge.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Quand tu parles d'aide VBA tu parles de l'aide microsoft en ligne ?

Je n'en connais pas d'autre !
Je cherche également comment trouver le numéro des couleurs, j'ai essayé en enregistrant une macro et en cliquant sur une couleur puis voir dans le code le numéro mais ça me donne un numéro à virgule et à rallonge.

ouyvre ton aide VBA ! (color, colorindex, RGB) lis !
Profite de ce que ce dimanche est pluvieux ! Commence à apprendre ton outil ! Je n'ai jamais consulté rien d'autre que cette aide VBA, pour atteindre mon niveau actuel (et j'avais environ 69 ans quand j'ai commencé à m'intéresser à VBA ! Tu es plus jeune, plus perméable ===>> tu devrais aller plus vite que moi )
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient