Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester les cellules non vides d'un tableau

31 réponses
Avatar
jpthillard
Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et r=E9cup=E9rer des informations de deux cellules (date et nom). J'ai
tent=E9 de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropri=E9e. Comment puis-je faire ?
En PJ un fichier exemple: http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP

10 réponses

1 2 3 4
Avatar
JB
Avec l'onglet et le mois paramétrés:

=INDEX(DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");(EQUIV($B$1;
{"avril";"mai";"juin"};0)-1)*20;0);1;SOMMEPROD((DECALER(INDIRECT("'"&C
$1&"'!$C$2:$Y$19");(EQUIV($B$1;{"avril";"mai";"juin"};0)-1)*20;0)=
$B2)*(COLONNE(DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");(EQUIV($B$1;
{"avril";"mai";"juin"};0)-1)*20;0))))-2)

=INDEX(DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");(EQUIV($B$1;
{"avril";"mai";"juin"};0)-1)*20;0);SOMMEPROD((DECALER(INDIRECT("'"&C
$1&"'!$C$2:$Y$19");(EQUIV($B$1;{"avril";"mai";"juin"};0)-1)*20;0)=
$B2)*(LIGNE(DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");(EQUIV($B$1;
{"avril";"mai";"juin"};0)-1)*20;0))))-LIGNE(DECALER(INDIRECT("'"&C
$1&"'!$C$2:$Y$19");(EQUIV($B$1;{"avril";"mai";"juin"};
0)-1)*20;0));SOMMEPROD((DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");
(EQUIV($B$1;{"avril";"mai";"juin"};0)-1)*20;0)=
$B2)*(COLONNE(DECALER(INDIRECT("'"&C$1&"'!$C$2:$Y$19");(EQUIV($B$1;
{"avril";"mai";"juin"};0)-1)*20;0))))-COLONNE(DECALER(INDIRECT("'"&C
$1&"'!$C$2:$Y$19");(EQUIV($B$1;{"avril";"mai";"juin"};0)-1)*20;0))+1)

http://cjoint.com/?fojyGoimPE

JB


On 14 mai, 08:14, JB wrote:
Bonjour,

Solution 1: un seul onglet à traiter

=INDEX(champ_avril;
1;SOMMEPROD((champ_avril²)*(COLONNE(champ_avril)))-
COLONNE(champ_avril)+1)
=INDEX(champ_avril;SOMMEPROD((champ_avril²)*(LIGNE(champ_avril)))-
LIGNE(champ_avril);SOMMEPROD((champ_avril²)*(COLONNE(champ_avril)))-
COLONNE(champ_avril)+1)

http://cjoint.com/?foinGgsHe1

Solution2: plusieurs onglets à traiter

=INDEX(INDIRECT("'"&C$1&"'!$C$2:$Y$19");1;SOMMEPROD((INDIRECT("'"&C
$1&"'!$C$2:$Y$19")=$B2)*(COLONNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"))))-
COLONNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"))+1)

=INDEX(INDIRECT("'"&C$1&"'!$C$2:$Y$19");SOMMEPROD((INDIRECT("'"&C$1&"'!
$C$2:$Y$19")=$B2)*(LIGNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"))))-
LIGNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"));SOMMEPROD((INDIRECT("'"&C$1&"'!
$C$2:$Y$19")=$B2)*(COLONNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"))))-
COLONNE(INDIRECT("'"&C$1&"'!$C$2:$Y$19"))+1)

http://cjoint.com/?foiofk6HUh

Cordialement JB

On 13 mai, 11:48, wrote:



Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Misange
Bonjuor FFO

Tes interventions sont tout à fait intéressantes et on comprends tous
très bien l'esprit dans lesquelles tu les fait. PAs de problème de ce
côté, bien au contraire !
Ce que Cousin Hub essaie de t'expliquer c'est qu'il y a plusieurs façons
de se connecter à ce forum :
via une interface web de microsoft,
ou via un lecteur de news
Cette dernière solution est, et de très loin, préférable,
essentiellement pour toi !
En effet un lecteur de news te permet de regouper toutes les
conversations par sujet automatiquement et de te signaler les
conversations dans lesquelles un nouveau message est apparu. Tu peux
mettre des indicateurs te permettant desuivre certains fils qui
t'intéressent particulièrement ou dans lesquels tu es intervenu,
tu peux conserver des messages qui t'intéressent en les copiant dans des
dossiers adhoc. BRef, que du bonheur !
Les deux lecteurs de news (forum) les plus utilisés (et gratuits) sont
outlook express et thunderbird. Je ne saurais que trop te recommander ce
dernier. Il est téléchargeable sur le site de mozilla.
Tu trouveras sur cette page
http://www.excelabo.net/mpfe/outlookexpress.php
un mode d'emploi pour te connecter via outlook express.

Concernant l'interface web, tu as du le remarquer avec certains des
intervenants à qui tu répondais, il est pénible de devoir feuilleter
plusieurs pages web pour retrouver un fil dans lequel on est intervenu.
Cette inrface incite +++ à ouvrir un nouveau fil à chaque intervention,
ce qui rend le suivi des conversations très très difficile pour
quelqu'un qui prend le train en marche.
Si certains donnent des noms d'oiseau à l'interface web de microsoft
c'est surtout parce que beaucoup tapent dans excel (ou word ou
powerpoint) un mot clef dans l'aide en ligne, se retrouvent sur le web
et croient parler à un moteur de recherche dans une base de
connaissance. L'interface est tellement mal faite qu'à aucun moment ils
ne réalisent que ce sont des contributeurs bénévoles (oh combien..) qui
prennent de leur temps pour leur répondre. Du coup ça pousse à des
questions du genre : "nombre maxi de colonnes sur excel ?" sans bonjour
ni merci ni retour (on va quand même pas remercier une machine de vous
répondre...).
Voilà j'espère que c'est plus clair et que tu prendras encore plus de
plaisir et d'intérêt à contribuer en utilisant un outil performant et
bien plus agréable pour toi !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Salut à toi
Mes interventions n'ont d'autre but que d'aider des interlocuteurs
Par leur difficulté je mets toutes mes connaissances en oeuvre cogite , met
au point une solution et prend toute la satisfaction à résoudre leur
problématique
En retour pour la plus part ils savent nous signifier leur profonde
gratitude (c'est je l'avoue trés grisant !!!) et moi de parfaire tout mon
savoir faire en Excel , j'en apprend beaucoup
Donc en résumé mes 2 objectifs :
Prendre un réel plaisir à aider
Emmagaziner des connaissances

Qu'il y est des actions mal intentionnée pour détourner mes objectifs à des
fins peu louables peu importe
Celà n'entamera pas mes 2 motivations

Tant qu'entre mes interlocuteurs demandeur d'une main secourable et moi qui
éprouve un réel plaisir à leur tendre tout le monde y trouve son compte je
n'aurais aucune raison de modifier cette dynamique

Pour ta gouverne je ne pense pas être le plus actif à mon grand regrêt
d'ailleur
Manque de temps et trés à la traine en terme de connaissance par rapport à
certain

Fort de toutes ces considérations si dans le même esprit tu as des
suggestions à me faire précise ta pensée car j'ai des difficulté à comprendre
où tu veux en venir
A quoi correspondent ces lecteurs de news (OE, Thunderbird, Opera, Mesnews,
j'en passe...) et que pourrait il m'apporter ????

Si tu peux éclairer ma lanterne je suis toujours ouvert aux améliorations en
adéquation avec ma philosophie

Heureux de te lire





Bonsoir FFO,
J'ai remarqué que tu intervenais bien souvent sur ce forum, à bon
escient, mais sais-tu qu'ils comptabilisent les intervenants issus de,
je cite (voir les stats CDO de Jièl) :
"cette "interface de m***",
et qu'ils en font des moyennes...
Si tu veux un petit conseil, aussi bien pour la lecture et le suivi des
fils sur ce forum, tu pourrais passer via un lecteur de news (OE,
Thunderbird, Opera, Mesnews, j'en passe...), et ainsi leur faire
plaisir....;-)
Bien amicalement

Salut à toi

Je te propose une solution Macro que tu devras juste réactualisée concernant
la zone à traiter liée au Mois
Tous les onglets seront automatiquement pris en compte
Attention le résultat est reporté dans l'onglet "Analyse des incriptions aux
CCF" dans la colonne approprié dans les cellules de chaque matière telle que
décrite dans ton fichier
Si tu changes leur ordre il faudra faire la correction appropriée dans la
macro

Le code :

For I = 1 To Sheets.Count
Nom = Sheets(I).Name
If Nom <> "Analyse des incriptions aux CCF" Then
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Colonne = Mid(ActiveCell.Address, 2, 1)
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")

If c = "Français 1" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)
End If

If c = "Français 2" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "4") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "5") =
c.Offset(-1, 0)
End If

If c = "Français 3" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "6") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "7") =
c.Offset(-1, 0)
End If

If c = "Histoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "8") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "9") =
c.Offset(-1, 0)
End If

If c = "Géographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "10") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "11") =
c.Offset(-1, 0)
End If

If c = "Maths" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "12") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "13") =
c.Offset(-1, 0)
End If

If c = "Physique" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "14") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "15") =
c.Offset(-1, 0)
End If

If c = "Anglais" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "16") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "17") =
c.Offset(-1, 0)
End If

If c = "Allemand" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "18") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "19") =
c.Offset(-1, 0)
End If

If c = "Laboratoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "20") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "21") =
c.Offset(-1, 0)
End If

If c = "Topographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "22") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "23") =
c.Offset(-1, 0)
End If

Next
End If
Next


Tu dois corriger la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19") et plus particulièrement
"C3", "Y19" qui correspond à la zone d'Avril pour un autre mois

Entre chaque If et End If tu as les cellules de recopie de chaque matière
dans l'onglet ("Analyse des incriptions aux CCF")
Pour le Français 1
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)

Le Range porte la ligne dans laquelle la valeur sera reportée dans la
colonne approprié
Date ligne 2 : Range(Colonne & "2")
Nom ligne 3 : Range(Colonne & "3")

N'oublies donc de les corriger si les lignes ne correspondent plus suite à
un changement

Voilà teste le et dis moi ce que t'en pense !!!
Traitement immédiat avec ton exemple fourni


On 13 mai, 15:01, "Jean-François Aubert" <à
wrote:
Salut JP

A l'onglet "récapitulatif" du fichier, j'ai fait quelquechose pour "2 CAP
CSI" . Si cela peut convenir, tu n'as plus qu'à faire la même chose pour
l'autre classe.
Tout est en formules dans les lignes et colonnes masquées.

http://www.cijoint.fr/cij18543094313219.xls

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}

a écrit dans le message de news:

Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP
Bonjour Jean-François,


Je suis effrayé de l'ampleur de la tâche car l'exemple ne porte que
sur 2 classes alors que le nombre réel est au minimum de 13 et que la
situation de récapitulatif porte sur 3 mois (avril, mai et juin).
On ne peut pas trouver plus simple? Si je dois en passer par là, je le
ferai!

Merci pour ta proposition. J'attends un peu de savoir si d'autres
idées pouvent emmerger.











Avatar
FFO
Bonjours Misange

Je te remercie beaucoup de ton appréciation sur mes interventions
En 2 mots la génèse de ma venue au sein de ce forum telle que je la pratique :
Ce sont mes débuts dans le monde de l'informatique et plus particulièrement
les difficultés d'un néophyte quant à l'utilisation d'un PC (Windows
95/98/NT/XP) qui m'ont rapidemment conduit à utiliser ce genre d'aide trés
précieux représenté par ces forums et ce via Outlook express
Mais si ce moyen d'accès offre effectivement beaucoup de souplesse quant à
l'utilisation et la gestion des messages il comporte 3 inconvénients majeurs
pour moi :
l'envahissement de tous les messages sur mon ordinateurs (plus de 200) à
chaque connexion ce qui quelque part m'insécurise un peu à l'époque des virus
florissant

l'utilisation d'un espace mémoire disque non négligeable (j'ai plutôt une
politique de rigueur en matière d'utilisation de l'espace disque on se laisse
facilement vite envahir avec tous les risques que celà comporte)

Une utilisation exclusive sur mon environnement personnel ne me permettant
pas de poursuivre toutes ses discussions interessantes pendant mes moments
d'oisiveté professionnelle n'étant pas chez moi

Pour ces 3 raisons découvrant la possibilité de poursuivre cette activité
directement sur le web via la connexion que j'utilise à ce jour j'ai
abandonné Outlook au profit de cette manière actuelle de faire

Certes je pers de la souplesse au niveau de la gestion de tous ces messages
mais je gagne sur la facilité des points d'accès et préserve mon outil
informatique

Maintenant si par ma façon de faire d'autres inconvénients quant au
fonctionnement de ce forum sont à déplorer je suis trés ouvert et ne demande
qu'à collaborer pour le plus grand intêret de tous
Comment alors allier mes préoccupations exposées et les préconisations que
vous avez la gentillesse de m'apporter

Peut être auriez vous un savoureux coktail
Merci d'avance


Bonjuor FFO

Tes interventions sont tout à fait intéressantes et on comprends tous
très bien l'esprit dans lesquelles tu les fait. PAs de problème de ce
côté, bien au contraire !
Ce que Cousin Hub essaie de t'expliquer c'est qu'il y a plusieurs façons
de se connecter à ce forum :
via une interface web de microsoft,
ou via un lecteur de news
Cette dernière solution est, et de très loin, préférable,
essentiellement pour toi !
En effet un lecteur de news te permet de regouper toutes les
conversations par sujet automatiquement et de te signaler les
conversations dans lesquelles un nouveau message est apparu. Tu peux
mettre des indicateurs te permettant desuivre certains fils qui
t'intéressent particulièrement ou dans lesquels tu es intervenu,
tu peux conserver des messages qui t'intéressent en les copiant dans des
dossiers adhoc. BRef, que du bonheur !
Les deux lecteurs de news (forum) les plus utilisés (et gratuits) sont
outlook express et thunderbird. Je ne saurais que trop te recommander ce
dernier. Il est téléchargeable sur le site de mozilla.
Tu trouveras sur cette page
http://www.excelabo.net/mpfe/outlookexpress.php
un mode d'emploi pour te connecter via outlook express.

Concernant l'interface web, tu as du le remarquer avec certains des
intervenants à qui tu répondais, il est pénible de devoir feuilleter
plusieurs pages web pour retrouver un fil dans lequel on est intervenu.
Cette inrface incite +++ à ouvrir un nouveau fil à chaque intervention,
ce qui rend le suivi des conversations très très difficile pour
quelqu'un qui prend le train en marche.
Si certains donnent des noms d'oiseau à l'interface web de microsoft
c'est surtout parce que beaucoup tapent dans excel (ou word ou
powerpoint) un mot clef dans l'aide en ligne, se retrouvent sur le web
et croient parler à un moteur de recherche dans une base de
connaissance. L'interface est tellement mal faite qu'à aucun moment ils
ne réalisent que ce sont des contributeurs bénévoles (oh combien..) qui
prennent de leur temps pour leur répondre. Du coup ça pousse à des
questions du genre : "nombre maxi de colonnes sur excel ?" sans bonjour
ni merci ni retour (on va quand même pas remercier une machine de vous
répondre...).
Voilà j'espère que c'est plus clair et que tu prendras encore plus de
plaisir et d'intérêt à contribuer en utilisant un outil performant et
bien plus agréable pour toi !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Salut à toi
Mes interventions n'ont d'autre but que d'aider des interlocuteurs
Par leur difficulté je mets toutes mes connaissances en oeuvre cogite , met
au point une solution et prend toute la satisfaction à résoudre leur
problématique
En retour pour la plus part ils savent nous signifier leur profonde
gratitude (c'est je l'avoue trés grisant !!!) et moi de parfaire tout mon
savoir faire en Excel , j'en apprend beaucoup
Donc en résumé mes 2 objectifs :
Prendre un réel plaisir à aider
Emmagaziner des connaissances

Qu'il y est des actions mal intentionnée pour détourner mes objectifs à des
fins peu louables peu importe
Celà n'entamera pas mes 2 motivations

Tant qu'entre mes interlocuteurs demandeur d'une main secourable et moi qui
éprouve un réel plaisir à leur tendre tout le monde y trouve son compte je
n'aurais aucune raison de modifier cette dynamique

Pour ta gouverne je ne pense pas être le plus actif à mon grand regrêt
d'ailleur
Manque de temps et trés à la traine en terme de connaissance par rapport à
certain

Fort de toutes ces considérations si dans le même esprit tu as des
suggestions à me faire précise ta pensée car j'ai des difficulté à comprendre
où tu veux en venir
A quoi correspondent ces lecteurs de news (OE, Thunderbird, Opera, Mesnews,
j'en passe...) et que pourrait il m'apporter ????

Si tu peux éclairer ma lanterne je suis toujours ouvert aux améliorations en
adéquation avec ma philosophie

Heureux de te lire





Bonsoir FFO,
J'ai remarqué que tu intervenais bien souvent sur ce forum, à bon
escient, mais sais-tu qu'ils comptabilisent les intervenants issus de,
je cite (voir les stats CDO de Jièl) :
"cette "interface de m***",
et qu'ils en font des moyennes...
Si tu veux un petit conseil, aussi bien pour la lecture et le suivi des
fils sur ce forum, tu pourrais passer via un lecteur de news (OE,
Thunderbird, Opera, Mesnews, j'en passe...), et ainsi leur faire
plaisir....;-)
Bien amicalement

Salut à toi

Je te propose une solution Macro que tu devras juste réactualisée concernant
la zone à traiter liée au Mois
Tous les onglets seront automatiquement pris en compte
Attention le résultat est reporté dans l'onglet "Analyse des incriptions aux
CCF" dans la colonne approprié dans les cellules de chaque matière telle que
décrite dans ton fichier
Si tu changes leur ordre il faudra faire la correction appropriée dans la
macro

Le code :

For I = 1 To Sheets.Count
Nom = Sheets(I).Name
If Nom <> "Analyse des incriptions aux CCF" Then
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Colonne = Mid(ActiveCell.Address, 2, 1)
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")

If c = "Français 1" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)
End If

If c = "Français 2" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "4") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "5") =
c.Offset(-1, 0)
End If

If c = "Français 3" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "6") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "7") =
c.Offset(-1, 0)
End If

If c = "Histoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "8") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "9") =
c.Offset(-1, 0)
End If

If c = "Géographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "10") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "11") =
c.Offset(-1, 0)
End If

If c = "Maths" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "12") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "13") =
c.Offset(-1, 0)
End If

If c = "Physique" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "14") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "15") =
c.Offset(-1, 0)
End If

If c = "Anglais" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "16") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "17") =
c.Offset(-1, 0)
End If

If c = "Allemand" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "18") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "19") =
c.Offset(-1, 0)
End If

If c = "Laboratoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "20") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "21") =
c.Offset(-1, 0)
End If

If c = "Topographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "22") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "23") =
c.Offset(-1, 0)
End If

Next
End If
Next


Tu dois corriger la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19") et plus particulièrement
"C3", "Y19" qui correspond à la zone d'Avril pour un autre mois

Entre chaque If et End If tu as les cellules de recopie de chaque matière
dans l'onglet ("Analyse des incriptions aux CCF")
Pour le Français 1
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)

Le Range porte la ligne dans laquelle la valeur sera reportée dans la
colonne approprié
Date ligne 2 : Range(Colonne & "2")
Nom ligne 3 : Range(Colonne & "3")

N'oublies donc de les corriger si les lignes ne correspondent plus suite à
un changement

Voilà teste le et dis moi ce que t'en pense !!!
Traitement immédiat avec ton exemple fourni


On 13 mai, 15:01, "Jean-François Aubert" <à
wrote:
Salut JP

A l'onglet "récapitulatif" du fichier, j'ai fait quelquechose pour "2 CAP
CSI" . Si cela peut convenir, tu n'as plus qu'à faire la même chose pour
l'autre classe.
Tout est en formules dans les lignes et colonnes masquées.

http://www.cijoint.fr/cij18543094313219.xls

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}

a écrit dans le message de news:

Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP
Bonjour Jean-François,


Je suis effrayé de l'ampleur de la tâche car l'exemple ne porte que
sur 2 classes alors que le nombre réel est au minimum de 13 et que la
situation de récapitulatif porte sur 3 mois (avril, mai et juin).
On ne peut pas trouver plus simple? Si je dois en passer par là, je le
ferai!

Merci pour ta proposition. J'attends un peu de savoir si d'autres
idées pouvent emmerger.














Avatar
lSteph
Bonjour,


Si j'ai bien compris, suivant l'idée de FFO et les autres échanges
les dispositions
aimeraient mieux une formule, mais just for fun , en VBA.

Option Explicit

Sub exemple()
Dim c As Range, col As Integer, myr As Range, _
tst As Boolean, lig As Long, Sh As Worksheet, mySh As Worksheet

Set mySh = Sheets("Analyse des incriptions aux CCF")

For Each Sh In ActiveWorkbook.Worksheets
On Error GoTo fin:
col = mySh.Cells.Find(What:=Sh.Name, After:=[a1], LookIn:=xlFormula s,
_
LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse).Column
On Error GoTo 0
Set myr = Sh.[C3:Y19]
If Sh.Name <> mySh.Name Then
For Each c In myr.Cells
tst = True
Select Case c
Case "Français 1"
lig = 2
Case "Français 2"
lig = 4
Case "Français 3"
lig = 6
Case "Histoire"
lig = 8
Case "Geographie"
lig = 10
Case "Maths"
lig = 12
Case "Physique"
lig = 14
Case "Anglais"
lig = 16
Case "Allemand"
lig = 18
Case "Laboratoire"
lig = 20
Case "Photographie"
lig = 22
Case Else
tst = False
End Select
If tst Then
mySh.Cells(lig, col) = c.Offset(-((c.Row) - 2), 0)
mySh.Cells(lig + 1, col) = c.Offset(-1, 0)
End If
Next c
End If
Next Sh
fin:
End Sub


On 13 mai, 11:48, wrote:
Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP


Avatar
lSteph
Finalement, non!
Pas tout vu il faut prendre aussi en compte les autres mois
Il y a donc deux endroits à aller substituer dans le code , c'est
franchement vilain!

Il faudrait savoir si cela concerne toujours Avril Mai Juin ou chaque
fois un trimestre où potentiellement toute l'Année
pour envisager d'autres dispositions.
Sinon au vu du nombre de feuillesCAP potentielles en selectant des
plages nommées cela risque d'en faire un sacré paquet.

En attendant , oubliez cela qui ne convient pas....

désolé

LSteph


On 14 mai, 11:56, lSteph wrote:
Bonjour,

Si j'ai bien compris, suivant l'idée de FFO et les autres échanges
les dispositions
aimeraient mieux une formule, mais just for fun , en VBA.

Option Explicit

Sub exemple()
Dim c As Range, col As Integer, myr As Range, _
tst As Boolean, lig As Long, Sh As Worksheet, mySh As Worksheet

Set mySh = Sheets("Analyse des incriptions aux CCF")

For Each Sh In ActiveWorkbook.Worksheets
On Error GoTo fin:
col = mySh.Cells.Find(What:=Sh.Name, After:=[a1], LookIn:=xlFormu las,
_
LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:úlse).Column
On Error GoTo 0
Set myr = Sh.[C3:Y19]
If Sh.Name <> mySh.Name Then
For Each c In myr.Cells
tst = True
Select Case c
Case "Français 1"
lig = 2
Case "Français 2"
lig = 4
Case "Français 3"
lig = 6
Case "Histoire"
lig = 8
Case "Geographie"
lig = 10
Case "Maths"
lig = 12
Case "Physique"
lig = 14
Case "Anglais"
lig = 16
Case "Allemand"
lig = 18
Case "Laboratoire"
lig = 20
Case "Photographie"
lig = 22
Case Else
tst = False
End Select
If tst Then
mySh.Cells(lig, col) = c.Offset(-((c.Row) - 2), 0)
mySh.Cells(lig + 1, col) = c.Offset(-1, 0)
End If
Next c
End If
Next Sh
fin:
End Sub

On 13 mai, 11:48, wrote:

Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP




Avatar
FFO
Rebonjour
Une Macro encore plus light :

For I = 1 To Sheets.Count
Nom = Sheets(I).Name
If Nom <> "Analyse des incriptions aux CCF" Then
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Colonne = Mid(ActiveCell.Address, 2, 1)
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
If c = D Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & (D.Row) + 1) =
c.Offset(-1, 0)
End If
Next
End If
Next
End If
Next

Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")

Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)

et de bien respecter l'homogénéité des libellés des matières entre les
différents onglets

Peut être pourra t'elle t'aider !!!




On 13 mai, 22:01, cousinhub wrote:
Bonsoir,
cette demande est effectivement assez complexe, il faut chercher le
cours, en déduire la date et le professeur...
Regarde le fichier ci-joint, et dis moi si cela te convient.
Du bricolage pur et dur.....
Forcément, tu auras un peu de travail à faire....
Tout d'abord, nommer les zones nécessaires.
Sur mon exemple, la zone "avril" comprend les cellules de D3 à Z3
la zone emp_avril de D4 à Z20
Il te faut insérer une ligne et une colonne en tout début de ton
tableau, insertion que tu pourras masquer, bien sûr.
pour la première ligne, zone nommée "baseh"
pour la colonne, une zone nommée "basev_avril"
ensuite, pour la date, formule :

=INDEX(avril;SOMMEPROD((emp_avril²)*(baseh)))

pour le nom du prof :

=INDEX(emp_avril;(SOMMEPROD((emp_avril²)*(basev_avril))-1);SOMMEPROD((emp­_avril²)*(baseh)))

Remarque, tu peux déterminer tes zones sans les noms, mais pour savoir
où on se situe, c'est plus facile...
Reviens si tu as un problème

http://cjoint.com/?fnv66IQ6jl





Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonsoir Cousinhub,
Je ne pensais pas m'être mis dans une situation aussi compliquée. J'ai
partiellement effectué le travail avec la solution de JFrançois
Aubert. C'est long et fastidieux mais efficace. Je vais exploiter ta
solution en nommant les plages. Merci à vous deux et je ne manquerai
pas de vous recontacter en cas de problème. Sauf que ma semaine va
être longue et que je n'aurai loisir de reprendre ce travail qu'en fin
de semaine prochaine.
Merci encore
JP






Avatar
lSteph
;o) et cette fois quelquechose qui semble fonctionner avec le choix
du mois:

http://cjoint.com/?fopBSTZ0V2

En B1 données validation Avril;Mai; Juin

Il faudra adapter le code si autre période:

'''''danc code feuille analyse
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, [b1]) Is Nothing Then Call exemple
End Sub


'''''dans un module standard
Sub exemple()
Dim c As Range, col As Integer, myr As Range, _
tst As Boolean, lig As Long, Sh As Worksheet, _
mySh As Worksheet, lemois As String, decal As Long

Set mySh = Sheets("Analyse des incriptions aux CCF")
lemois = mySh.[b1]
mySh.[c2:iv27].ClearContents
For Each Sh In ActiveWorkbook.Worksheets
On Error GoTo fin:
col = mySh.Cells.Find(What:=Sh.Name, After:=[a1], LookIn:=xlFormula s,
_
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse).Column
On Error GoTo 0
Select Case lemois
Case "Avril"
decal = 0
Case "Mai"
decal = 20
Case "Juin"
decal = 40
End Select

Set myr = Sh.[C3:Y19].Offset(decal, 0)

If Sh.Name <> mySh.Name Then
For Each c In myr.Cells
tst = True
Select Case c
Case "Français 1"
lig = 2
Case "Français 2"
lig = 4
Case "Français 3"
lig = 6
Case "Histoire"
lig = 8
Case "Geographie"
lig = 10
Case "Maths"
lig = 12
Case "Physique"
lig = 14
Case "Anglais"
lig = 16
Case "Allemand"
lig = 18
Case "Laboratoire"
lig = 20
Case "Photographie"
lig = 22
Case Else
tst = False
End Select

If tst Then
mySh.Cells(lig, col) = c.Offset(-((c.Row) - (decal + 2)), 0)
mySh.Cells(lig + 1, col) = c.Offset(-1, 0)
End If
Next c
End If
Next Sh
fin:
End Sub

'Cdlt

'lSteph


On 13 mai, 11:48, wrote:
Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP


Avatar
lSteph
Bonjour FFO,

;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select

(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )

Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")

Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cet te
ligne)


...me semblerait qu'il reste un truc à changer aussi par là:

Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)


- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.

Amicordialement.

lSteph

Avatar
lSteph
Re, bonjour,

Puis , plutôt que chercher la colonne autant les ajouter dans la
feuille analyse en fonction des autres feuilles:

http://cjoint.com/?fosQ7RaaI5

Option Explicit

Sub exemple()
Dim c As Range, col As Integer, myr As Range, _
tst As Boolean, lig As Long, Sh As Worksheet, _
mySh As Worksheet, lemois As String, decal As Long

Set mySh = Sheets("Analyse des incriptions aux CCF")
lemois = mySh.[b1]
mySh.[c1:iv27].ClearContents
mySh.[d1:iv27].Delete
col = 2
For Each Sh In ActiveWorkbook.Worksheets
col = col + 1

Select Case lemois
Case "Avril"
decal = 0
Case "Mai"
decal = 20
Case "Juin"
decal = 40
End Select

Set myr = Sh.[C3:Y19].Offset(decal, 0)

If Sh.Name <> mySh.Name Then
mySh.Cells(1, col) = Sh.Name
For Each c In myr.Cells
tst = True
Select Case c
Case "Français 1"
lig = 2
Case "Français 2"
lig = 4
Case "Français 3"
lig = 6
Case "Histoire"
lig = 8
Case "Geographie"
lig = 10
Case "Maths"
lig = 12
Case "Physique"
lig = 14
Case "Anglais"
lig = 16
Case "Allemand"
lig = 18
Case "Laboratoire"
lig = 20
Case "Photographie"
lig = 22
Case Else
tst = False
End Select

If tst Then
mySh.Cells(lig, col) = c.Offset(-((c.Row) - (decal + 2)), 0)
mySh.Cells(lig + 1, col) = c.Offset(-1, 0)
End If
Next c
End If
Next Sh
With mySh
.[c1.c27].Copy
.Range("d27", [iv1].End(xlToLeft)).PasteSpecial xlFormats
End With
End Sub



On 13 mai, 11:48, wrote:
Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP


Avatar
Misange
Re bonsoir FFO
Ca fait un moment que je ne pratique plus OE. Sur thunderbird, je ne
relève les messages du forum que lorsque je le souhaite. Les messages
forums sont stockés ailleurs que dans ma messagerie, ce que je préfère
également. Enfin, tu peux facilement paramétrer thunderbird pour qu'il
ne stocke qu'un volume défini de messages et purge les anciens.
Quant à répondre, quelle que soit l'interface, il est exclu de répondre
à tout, même si on est super compétent !!!
Maintenant, chacun fait comme il sent ! Sans compter que certains n'ont
pas accès au news à leur boulot pour des raisons de "sécurité" (elle a
parfois drolement bon dos quand les "informaticiens" n'ont pas envie de
se casser...) Tant que tu décourages les répondeurs de commencer de
nouvelles ficelles à chaque intervention :-) tout va bien !

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjours Misange

Je te remercie beaucoup de ton appréciation sur mes interventions
En 2 mots la génèse de ma venue au sein de ce forum telle que je la pratique :
Ce sont mes débuts dans le monde de l'informatique et plus particulièrement
les difficultés d'un néophyte quant à l'utilisation d'un PC (Windows
95/98/NT/XP) qui m'ont rapidemment conduit à utiliser ce genre d'aide trés
précieux représenté par ces forums et ce via Outlook express
Mais si ce moyen d'accès offre effectivement beaucoup de souplesse quant à
l'utilisation et la gestion des messages il comporte 3 inconvénients majeurs
pour moi :
l'envahissement de tous les messages sur mon ordinateurs (plus de 200) à
chaque connexion ce qui quelque part m'insécurise un peu à l'époque des virus
florissant

l'utilisation d'un espace mémoire disque non négligeable (j'ai plutôt une
politique de rigueur en matière d'utilisation de l'espace disque on se laisse
facilement vite envahir avec tous les risques que celà comporte)

Une utilisation exclusive sur mon environnement personnel ne me permettant
pas de poursuivre toutes ses discussions interessantes pendant mes moments
d'oisiveté professionnelle n'étant pas chez moi

Pour ces 3 raisons découvrant la possibilité de poursuivre cette activité
directement sur le web via la connexion que j'utilise à ce jour j'ai
abandonné Outlook au profit de cette manière actuelle de faire

Certes je pers de la souplesse au niveau de la gestion de tous ces messages
mais je gagne sur la facilité des points d'accès et préserve mon outil
informatique

Maintenant si par ma façon de faire d'autres inconvénients quant au
fonctionnement de ce forum sont à déplorer je suis trés ouvert et ne demande
qu'à collaborer pour le plus grand intêret de tous
Comment alors allier mes préoccupations exposées et les préconisations que
vous avez la gentillesse de m'apporter

Peut être auriez vous un savoureux coktail
Merci d'avance


Bonjuor FFO

Tes interventions sont tout à fait intéressantes et on comprends tous
très bien l'esprit dans lesquelles tu les fait. PAs de problème de ce
côté, bien au contraire !
Ce que Cousin Hub essaie de t'expliquer c'est qu'il y a plusieurs façons
de se connecter à ce forum :
via une interface web de microsoft,
ou via un lecteur de news
Cette dernière solution est, et de très loin, préférable,
essentiellement pour toi !
En effet un lecteur de news te permet de regouper toutes les
conversations par sujet automatiquement et de te signaler les
conversations dans lesquelles un nouveau message est apparu. Tu peux
mettre des indicateurs te permettant desuivre certains fils qui
t'intéressent particulièrement ou dans lesquels tu es intervenu,
tu peux conserver des messages qui t'intéressent en les copiant dans des
dossiers adhoc. BRef, que du bonheur !
Les deux lecteurs de news (forum) les plus utilisés (et gratuits) sont
outlook express et thunderbird. Je ne saurais que trop te recommander ce
dernier. Il est téléchargeable sur le site de mozilla.
Tu trouveras sur cette page
http://www.excelabo.net/mpfe/outlookexpress.php
un mode d'emploi pour te connecter via outlook express.

Concernant l'interface web, tu as du le remarquer avec certains des
intervenants à qui tu répondais, il est pénible de devoir feuilleter
plusieurs pages web pour retrouver un fil dans lequel on est intervenu.
Cette inrface incite +++ à ouvrir un nouveau fil à chaque intervention,
ce qui rend le suivi des conversations très très difficile pour
quelqu'un qui prend le train en marche.
Si certains donnent des noms d'oiseau à l'interface web de microsoft
c'est surtout parce que beaucoup tapent dans excel (ou word ou
powerpoint) un mot clef dans l'aide en ligne, se retrouvent sur le web
et croient parler à un moteur de recherche dans une base de
connaissance. L'interface est tellement mal faite qu'à aucun moment ils
ne réalisent que ce sont des contributeurs bénévoles (oh combien..) qui
prennent de leur temps pour leur répondre. Du coup ça pousse à des
questions du genre : "nombre maxi de colonnes sur excel ?" sans bonjour
ni merci ni retour (on va quand même pas remercier une machine de vous
répondre...).
Voilà j'espère que c'est plus clair et que tu prendras encore plus de
plaisir et d'intérêt à contribuer en utilisant un outil performant et
bien plus agréable pour toi !


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Salut à toi
Mes interventions n'ont d'autre but que d'aider des interlocuteurs
Par leur difficulté je mets toutes mes connaissances en oeuvre cogite , met
au point une solution et prend toute la satisfaction à résoudre leur
problématique
En retour pour la plus part ils savent nous signifier leur profonde
gratitude (c'est je l'avoue trés grisant !!!) et moi de parfaire tout mon
savoir faire en Excel , j'en apprend beaucoup
Donc en résumé mes 2 objectifs :
Prendre un réel plaisir à aider
Emmagaziner des connaissances

Qu'il y est des actions mal intentionnée pour détourner mes objectifs à des
fins peu louables peu importe
Celà n'entamera pas mes 2 motivations

Tant qu'entre mes interlocuteurs demandeur d'une main secourable et moi qui
éprouve un réel plaisir à leur tendre tout le monde y trouve son compte je
n'aurais aucune raison de modifier cette dynamique

Pour ta gouverne je ne pense pas être le plus actif à mon grand regrêt
d'ailleur
Manque de temps et trés à la traine en terme de connaissance par rapport à
certain

Fort de toutes ces considérations si dans le même esprit tu as des
suggestions à me faire précise ta pensée car j'ai des difficulté à comprendre
où tu veux en venir
A quoi correspondent ces lecteurs de news (OE, Thunderbird, Opera, Mesnews,
j'en passe...) et que pourrait il m'apporter ????

Si tu peux éclairer ma lanterne je suis toujours ouvert aux améliorations en
adéquation avec ma philosophie

Heureux de te lire





Bonsoir FFO,
J'ai remarqué que tu intervenais bien souvent sur ce forum, à bon
escient, mais sais-tu qu'ils comptabilisent les intervenants issus de,
je cite (voir les stats CDO de Jièl) :
"cette "interface de m***",
et qu'ils en font des moyennes...
Si tu veux un petit conseil, aussi bien pour la lecture et le suivi des
fils sur ce forum, tu pourrais passer via un lecteur de news (OE,
Thunderbird, Opera, Mesnews, j'en passe...), et ainsi leur faire
plaisir....;-)
Bien amicalement

Salut à toi

Je te propose une solution Macro que tu devras juste réactualisée concernant
la zone à traiter liée au Mois
Tous les onglets seront automatiquement pris en compte
Attention le résultat est reporté dans l'onglet "Analyse des incriptions aux
CCF" dans la colonne approprié dans les cellules de chaque matière telle que
décrite dans ton fichier
Si tu changes leur ordre il faudra faire la correction appropriée dans la
macro

Le code :

For I = 1 To Sheets.Count
Nom = Sheets(I).Name
If Nom <> "Analyse des incriptions aux CCF" Then
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Colonne = Mid(ActiveCell.Address, 2, 1)
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")

If c = "Français 1" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)
End If

If c = "Français 2" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "4") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "5") =
c.Offset(-1, 0)
End If

If c = "Français 3" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "6") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "7") =
c.Offset(-1, 0)
End If

If c = "Histoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "8") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "9") =
c.Offset(-1, 0)
End If

If c = "Géographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "10") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "11") =
c.Offset(-1, 0)
End If

If c = "Maths" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "12") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "13") =
c.Offset(-1, 0)
End If

If c = "Physique" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "14") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "15") =
c.Offset(-1, 0)
End If

If c = "Anglais" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "16") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "17") =
c.Offset(-1, 0)
End If

If c = "Allemand" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "18") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "19") =
c.Offset(-1, 0)
End If

If c = "Laboratoire" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "20") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "21") =
c.Offset(-1, 0)
End If

If c = "Topographie" Then
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "22") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "23") =
c.Offset(-1, 0)
End If

Next
End If
Next


Tu dois corriger la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19") et plus particulièrement
"C3", "Y19" qui correspond à la zone d'Avril pour un autre mois

Entre chaque If et End If tu as les cellules de recopie de chaque matière
dans l'onglet ("Analyse des incriptions aux CCF")
Pour le Français 1
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "2") =
c.Offset(-((c.Row) - 2), 0)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & "3") =
c.Offset(-1, 0)

Le Range porte la ligne dans laquelle la valeur sera reportée dans la
colonne approprié
Date ligne 2 : Range(Colonne & "2")
Nom ligne 3 : Range(Colonne & "3")

N'oublies donc de les corriger si les lignes ne correspondent plus suite à
un changement

Voilà teste le et dis moi ce que t'en pense !!!
Traitement immédiat avec ton exemple fourni


On 13 mai, 15:01, "Jean-François Aubert" <à
wrote:
Salut JP

A l'onglet "récapitulatif" du fichier, j'ai fait quelquechose pour "2 CAP
CSI" . Si cela peut convenir, tu n'as plus qu'à faire la même chose pour
l'autre classe.
Tout est en formules dans les lignes et colonnes masquées.

http://www.cijoint.fr/cij18543094313219.xls

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}

a écrit dans le message de news:

Bonjour,

Je voudrais tester le contenu d'une plage de cellules dans un tableau
et récupérer des informations de deux cellules (date et nom). J'ai
tenté de le faire avec une fonction recherchev. Je vois bien qu'elle
est inappropriée. Comment puis-je faire ?
En PJ un fichier exemple:http://cjoint.com/?fnlVFGkWkM
Merci d'avance

JP
Bonjour Jean-François,


Je suis effrayé de l'ampleur de la tâche car l'exemple ne porte que
sur 2 classes alors que le nombre réel est au minimum de 13 et que la
situation de récapitulatif porte sur 3 mois (avril, mai et juin).
On ne peut pas trouver plus simple? Si je dois en passer par là, je le
ferai!

Merci pour ta proposition. J'attends un peu de savoir si d'autres
idées pouvent emmerger.















1 2 3 4