Selection et compte dans excel
Résolu
toufmang
-
toufmang Messages postés 8 Statut Membre -
toufmang Messages postés 8 Statut Membre -
Bonjour,
A B C D E F G H I J
1 RU RP RP M M M M M RP RP
2 RP N N N N M RP RP RP N
3 RU RP RP M M M M RP RP RP
4 RU RP RP M M M M RP RP RP
1) Ma question est comment faire pour sélectionner en automatique chaque série de 3 R* et pas +. Ne pas sélectionner ni compter si + de 3 R* a la suite.
2) les comptabiliser et mettre le résultat dans une cellule à coté du tableau.
Merci beaucoup.
A B C D E F G H I J
1 RU RP RP M M M M M RP RP
2 RP N N N N M RP RP RP N
3 RU RP RP M M M M RP RP RP
4 RU RP RP M M M M RP RP RP
1) Ma question est comment faire pour sélectionner en automatique chaque série de 3 R* et pas +. Ne pas sélectionner ni compter si + de 3 R* a la suite.
2) les comptabiliser et mettre le résultat dans une cellule à coté du tableau.
Merci beaucoup.
A voir également:
- Selection et compte dans excel
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Créer un compte google - Guide
- Si et ou excel - Guide
- Installer windows 10 sans compte microsoft - Guide
14 réponses
Bonjour
il faut compter ligne par ligne ?
si oui ligne1 on aurait 1 (1 serie de 3 R* à la suite) ? j'ai compté 1 par ligne de 1 à 3 et 2 pour la ligne 4...?
OU.... tout le tableau y compris à cheval sur 2 lignes: j'ai alors compté 6 series...?
OU....
Une solution par VBA te conviendrait elle ?
il faut compter ligne par ligne ?
si oui ligne1 on aurait 1 (1 serie de 3 R* à la suite) ? j'ai compté 1 par ligne de 1 à 3 et 2 pour la ligne 4...?
OU.... tout le tableau y compris à cheval sur 2 lignes: j'ai alors compté 6 series...?
OU....
Une solution par VBA te conviendrait elle ?
Bonsoir
une solution peut être pas trop compliquée, si il faut compter les 3R successifs en ligne
http://www.cijoint.fr/cjlink.php?file=cj200910/cij5eYoSUC.xls
Ca doit pouvoir s'adapter aussi à un calcul en colonne, mais on aura du mal avec les diagonales!
:-)
Cordialement
une solution peut être pas trop compliquée, si il faut compter les 3R successifs en ligne
http://www.cijoint.fr/cjlink.php?file=cj200910/cij5eYoSUC.xls
Ca doit pouvoir s'adapter aussi à un calcul en colonne, mais on aura du mal avec les diagonales!
:-)
Cordialement
Salut tout le monde,
Quelques propositions, formules et mise en forme conditionnelle
peut s'adapter en colonne, mais comme le dit notre ami Vaucluse en diagonale bonjour les maux de tête et le poids du fichier, à voir la proposition de Michel_m en VBA
https://www.cjoint.com/?knxjdz3NRG
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Quelques propositions, formules et mise en forme conditionnelle
peut s'adapter en colonne, mais comme le dit notre ami Vaucluse en diagonale bonjour les maux de tête et le poids du fichier, à voir la proposition de Michel_m en VBA
https://www.cjoint.com/?knxjdz3NRG
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Re,
Excusez-moi, mais j'avais à faire...
J'ai essayé vainement par une formule matricielle (ma question pour une solution VBA était une précaution car des demandeurs ne veulent pas de VBA et j'en ai marre d'avoir une réponse sèche...)
donc proposition avec une fonction personnalisée:
Excusez-moi, mais j'avais à faire...
J'ai essayé vainement par une formule matricielle (ma question pour une solution VBA était une précaution car des demandeurs ne veulent pas de VBA et j'en ai marre d'avoir une réponse sèche...)
donc proposition avec une fonction personnalisée:
Function trois_R(plage As Range) As Byte
'initialisation
lig = plage.Row
nbre_R = Application.CountIf(plage, "R*")
col = 256
suite = 1
'parcours les colonnes ayant un "R*"
For cptr = 1 To nbre_R
anc_col = col
col = Rows(1).Find("R*", Cells(lig, col), xlValues, xlWhole).Column
'si les les R* ne sont pas jointifs
If col <> anc_col + 1 Then
suite = 1
End If
'si les R* sont jointifs on additionne le nombre de jointifs
If col = anc_col + 1 Then
suite = suite + 1
End If
' si le nombre de jointifs est inf à 4
If suite < 4 Then
trois_R = trois_R + Int(suite / 3) 'int(suite/3)=0 tant que suite est <3
End If
Next
End Function
Bonsoir, Michel
Je suis désolé mais je ne sais pas comment utiliser la fonction. Pourrais tu me donner la marche a suivre.
Je suis beaucoup plus alaise avec Access...
Je te joins une page de mon fichier pour que tu comprennes mon problème.
https://www.cjoint.com/?kotEvhUZhs
Ce serait bien de pouvoir repérer tous ces R* par 3 avec une couleur de fond, si c'est facile à intégrer dans la fonction.....
Merci
Je suis désolé mais je ne sais pas comment utiliser la fonction. Pourrais tu me donner la marche a suivre.
Je suis beaucoup plus alaise avec Access...
Je te joins une page de mon fichier pour que tu comprennes mon problème.
https://www.cjoint.com/?kotEvhUZhs
Ce serait bien de pouvoir repérer tous ces R* par 3 avec une couleur de fond, si c'est facile à intégrer dans la fonction.....
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re,
Je viens de regarder ton classeur; il y a beaucoup de choses à améliorer notamment de le rendre perpétuel avec les jours de la semaine calculés par formule (il suffit de mettre des formules pour le 1° du mois...)
dis moi si ca t'intéresse, j' attends ta réponse avant de commencer
Pour les couleurs, il faut que je regarde mais on devrait pouvoir...
Je viens de regarder ton classeur; il y a beaucoup de choses à améliorer notamment de le rendre perpétuel avec les jours de la semaine calculés par formule (il suffit de mettre des formules pour le 1° du mois...)
dis moi si ca t'intéresse, j' attends ta réponse avant de commencer
Pour les couleurs, il faut que je regarde mais on devrait pouvoir...
Bonjour Michel,
En faite se n'est qu’une copie de la première feuille d'un gros classeur ou tout se fait automatiquement.
Si tu veux je te fais parvenir le classeur complet mais il fait 1.03 Mo.
C’est un fichier qui permet de calculer les roulements de 5 équipes en 3x8.
Donc se que je désir apporter comme amélioration c'est de faire ressortir les périodes de trois repos et de les comptabiliser (car c'est réglementé) afin de pouvoir les modifier si nécessaire.
(Ne pas comptabiliser les périodes de plus de trois repos).
Merci pour ton aide sur se projet
En faite se n'est qu’une copie de la première feuille d'un gros classeur ou tout se fait automatiquement.
Si tu veux je te fais parvenir le classeur complet mais il fait 1.03 Mo.
C’est un fichier qui permet de calculer les roulements de 5 équipes en 3x8.
Donc se que je désir apporter comme amélioration c'est de faire ressortir les périodes de trois repos et de les comptabiliser (car c'est réglementé) afin de pouvoir les modifier si nécessaire.
(Ne pas comptabiliser les périodes de plus de trois repos).
Merci pour ton aide sur se projet
Bonjour,
Pour colorier les troisR* j'ai été obligé de passer d'une fonction à une procédure...
ci joint proposition
https://www.cjoint.com/?kpldy7XGW1
pour installer
1/sur mon classeur, tu vas dans VBE ( c'est le m^me qu'avec Access) par alt+F11
dans la partie code: ctrl+A puis Ctrl+C (on sélectionne tout puis on demande copier)
2/dans ton classeur
tu vas dans VBE
insertion-module
Ctrl=V (coller)
3/pour le bouton
outils-personnaliser-formulaire
tu choisis le bouton et dessine le avec la petite croix
tu l'affecte à la macro "compter_troisR"
Pour colorier les troisR* j'ai été obligé de passer d'une fonction à une procédure...
ci joint proposition
https://www.cjoint.com/?kpldy7XGW1
pour installer
1/sur mon classeur, tu vas dans VBE ( c'est le m^me qu'avec Access) par alt+F11
dans la partie code: ctrl+A puis Ctrl+C (on sélectionne tout puis on demande copier)
2/dans ton classeur
tu vas dans VBE
insertion-module
Ctrl=V (coller)
3/pour le bouton
outils-personnaliser-formulaire
tu choisis le bouton et dessine le avec la petite croix
tu l'affecte à la macro "compter_troisR"
Merci de répondre aussi vite, mais je ne pourrais consulter ton classeur que ce soir car je suis au boulot et je n'ai pas accès a cjoint.com. Je te donnerais des nouvelles une fois les manips faites.
Merci encore et bonne journée.......
Merci encore et bonne journée.......
au cas où:
voila ce qui 'il y a à coller dans ton classeur
voila ce qui 'il y a à coller dans ton classeur
Sub compter_troisR()
Dim col As Byte, suite As Byte, lig As Byte, derlig As Byte
Dim nbre_R As Byte, cptr As Byte, anc_col As Byte, trois_R As Byte
'initialisation
col = 255
suite = 1
lig = 5
derlig = Range("B65536").End(3).Row
Application.ScreenUpdating = False
'Nettoie le tableau
reinitialiser
'parcourt les lignes
For lig = 5 To derlig Step 3
nbre_R = Application.CountIf(Range(Cells(lig, 2), Cells(lig, 32)), "R*")
'parcours les colonnes ayant un "R*"
For cptr = 1 To nbre_R
anc_col = col
col = Rows(lig).Find("R*", Cells(lig, col), xlValues, xlWhole).Column
'si les les R* ne sont pas jointifs
If col <> anc_col + 1 Then
suite = 1
End If
'si les R* sont jointifs on additionne le nombre de jointifs
If col = anc_col + 1 Then
suite = suite + 1
End If
'si le nomre de jointif est = 3
If suite = 3 Then
Range(Cells(lig, col - 2), Cells(lig, col)).Interior.ColorIndex = 35
End If
' si le nombre de jointifs est inf à 4
If suite < 4 Then
trois_R = trois_R + Int(suite / 3) 'int(suite/3)=0 tant que suite est <3
End If
Next cptr
Cells(lig, 33) = trois_R
trois_R = 0
Next lig
End Sub
Sub reinitialiser()
Range(Cells(5, 2), Cells(255, 32)).Interior.ColorIndex = xlNone
Range("AG5:AG255").ClearContents
End Sub
Super, Michel ça prend forme.
Je ne voudrais pas paraître trop exigent, mais il ya des modifs à apporter. Je ne me suis pas assez bien exprimé depuis le début.
Ex: les deux deniers jours de janvier et le premier de février doivent aussi être comptés dans les 3 R*, ça va peut-être corser le programme et aussi les périodes supérieur à 3 R* comme celle du 13 février au 19, doivent être ignorés.
sinon j'ai réussi a faire fonctionner....
Encore Merci pour ton investissement....
Je ne voudrais pas paraître trop exigent, mais il ya des modifs à apporter. Je ne me suis pas assez bien exprimé depuis le début.
Ex: les deux deniers jours de janvier et le premier de février doivent aussi être comptés dans les 3 R*, ça va peut-être corser le programme et aussi les périodes supérieur à 3 R* comme celle du 13 février au 19, doivent être ignorés.
sinon j'ai réussi a faire fonctionner....
Encore Merci pour ton investissement....
Bonjour,
Je ne voudrais pas paraître trop exigent, mais il ya des modifs à apporter. Je ne me suis pas assez bien exprimé depuis le début.
ce qui me fait un travail bénévole de 3-4 heures pour nada, merci.
les deux deniers jours de janvier et le premier de février doivent aussi être comptés dans les 3 R*, ça va peut-être corser le programme
ca va pas corser le programme mais tout refaire... avec une variable-tableau de dimension 366 x 4 et mise en forme conditionnelle sur la feuille excel, soit encore environ 3 à 4 heures de boulot bénévole avec certainement des heures en plus car la demande est incomplète et/ou floue:
1/sur quel mois compte t on la période à cheval sur 2 mois ?
2/ les périodes supérieur à 3 R* comme celle du 13 février au 19, doivent être ignorés.
: si cela veut dire on ignore passé 3 jours c'est fait. Sinon ???
Voilà, imagine que tu es donné cela à faire à titre onéreux à un professionnel, bonjour la chorale dans le bureau de la Direction.
Désolé
Je ne voudrais pas paraître trop exigent, mais il ya des modifs à apporter. Je ne me suis pas assez bien exprimé depuis le début.
ce qui me fait un travail bénévole de 3-4 heures pour nada, merci.
les deux deniers jours de janvier et le premier de février doivent aussi être comptés dans les 3 R*, ça va peut-être corser le programme
ca va pas corser le programme mais tout refaire... avec une variable-tableau de dimension 366 x 4 et mise en forme conditionnelle sur la feuille excel, soit encore environ 3 à 4 heures de boulot bénévole avec certainement des heures en plus car la demande est incomplète et/ou floue:
1/sur quel mois compte t on la période à cheval sur 2 mois ?
2/ les périodes supérieur à 3 R* comme celle du 13 février au 19, doivent être ignorés.
: si cela veut dire on ignore passé 3 jours c'est fait. Sinon ???
Voilà, imagine que tu es donné cela à faire à titre onéreux à un professionnel, bonjour la chorale dans le bureau de la Direction.
Désolé
Bonsoir Michel,
Je suis désolé de t'avoir fait perdre ton temps, mais j'avais déjà dit plus haut qu'il fallait considérer que tout se trouvai sur une seule ligne. Les périodes à cheval sont aléatoires, c'est la continuité du roulement de l'année précédente qui fait qu'une période de trois repos tombe à cheval ou pas sur deux mois.
Quand à la période supérieure à 3 jours, je vais l'appeler vacance, elle n'est pas une période de repos. Donc je ne la compte pas.
Encore une fois désolé, j'essaierais à l'avenir d'être plus clair.
Tan-pis.
Je suis désolé de t'avoir fait perdre ton temps, mais j'avais déjà dit plus haut qu'il fallait considérer que tout se trouvai sur une seule ligne. Les périodes à cheval sont aléatoires, c'est la continuité du roulement de l'année précédente qui fait qu'une période de trois repos tombe à cheval ou pas sur deux mois.
Quand à la période supérieure à 3 jours, je vais l'appeler vacance, elle n'est pas une période de repos. Donc je ne la compte pas.
Encore une fois désolé, j'essaierais à l'avenir d'être plus clair.
Tan-pis.
Comme le problème m'a branché...
ci joint proposition
https://www.cjoint.com/?ksv3RaqD3P
On ne prend en compte qu'une série de 3 jours R* (pas plus, pas moins)
la série est comptabilisée dans le mois qui termine la série
ci joint proposition
https://www.cjoint.com/?ksv3RaqD3P
On ne prend en compte qu'une série de 3 jours R* (pas plus, pas moins)
la série est comptabilisée dans le mois qui termine la série
Bonsoir Michel,
Alors là moi je dis BRAVO, c'est génial. En manipulant les modules sur Access j'avais toujours réussi à me débrouiller, mais là CHAPEAU. Je vais essayer de comprendre ton raisonnement ainsi que l'écriture dans le module, mais vraisemblablement c'est d'un autre niveau sur Excel. Je crois que j'ai encore beaucoup à apprendre malgré mes 47 ans. Est-ce que "VBA pour Excel pour les nuls" permet de bien s'en sortir dans les modules ?
Encore X fois Bravo, je t'envie de maitriser ce langage et la programmation.
Alors là moi je dis BRAVO, c'est génial. En manipulant les modules sur Access j'avais toujours réussi à me débrouiller, mais là CHAPEAU. Je vais essayer de comprendre ton raisonnement ainsi que l'écriture dans le module, mais vraisemblablement c'est d'un autre niveau sur Excel. Je crois que j'ai encore beaucoup à apprendre malgré mes 47 ans. Est-ce que "VBA pour Excel pour les nuls" permet de bien s'en sortir dans les modules ?
Encore X fois Bravo, je t'envie de maitriser ce langage et la programmation.
Le résultat est 1 série ligne 1; 2 série ligne de 1 à 2; 1 série ligne 3; 1 série ligne 4 => Donc 5 série
C'est un tableau mais on peut imaginer que tout se trouve sur une seule ligne....
Il ne faut pas compter ni selectionner si + de 3 r*...
La soluce VB me convient..
merci pour votre aide.....