Fonction si sur trois feuilles

Résolu/Fermé
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 29 juil. 2010 à 13:42
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 31 juil. 2010 à 21:22
Bonjour à tous et ttes,

vous trouverez lien pour le fichier vous comprendrez plus vite que ce que je vais essayer de vous expliquer.. ?

dans mon classeur, j'ai trois feuilles [registre, saec, MCAE].
Sur la feuille registre, j'ai 5 colonnes dénommées ; nom, prénom, mil.acc., DN, D.IN.

La colonne 1 = nom

La colonne 2 = prénom
...

J'aimerais que si dans la colonne 3 [mil.acc.), j'ai l'abréviation SAEC, l'entièreté de la ligne soit copié sur la feuille dénommée saec.
Ex. sur la ligne 1 à la colonne mil.acc. j'ai l'abréviation saec, les infos de cette ligne se reproduise sur la feuille dénommée saec.
Pareil pour l'abréviation MCAE mais dans ce cas, la ligne irait se copier sur la feuille MCAE.
En résumé, si dans la colonne mil. Acc. de la feuille dénommée registre se retrouve l'abréviation saec, alors sur la feuille dénommée saec viendra se copier l'entièreté de la ligne.
Je sais pas si vos avez compris..Mais...si vous pouvez m'aider cela serait sympa..

Bien à vous. Bonne pm.

Berni/

http://www.cijoint.fr/cjlink.php?file=cj201007/cijtI3ae2h.xls

11 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
30 juil. 2010 à 09:42
bonjour benji71, Mike-31,

Une macro événementielle à placer dans "ThisWorkbook" :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "registre" Then Exit Sub
Const col = 3   ' "C"
Dim lig As Long
Dim lgc As Long
lgc = 2    ' suppression existant
    Sh.Rows(lgc).Resize(Sh.UsedRange.Rows.Count).Delete
With Sheets("registre") ' boucle sur onglet global
    For lig = 2 To .UsedRange.Rows.Count
        If LCase(.Cells(lig, col).Value) = LCase(Sh.Name) Then
            .Rows(lig).Copy Destination:=Sh.Rows(lgc)
            lgc = lgc + 1   ' ligne de copie suivante
        End If
    Next lig
End With
End Sub

Lorsque tu te positionnes sur un de tes onglet de ventilation il est automatiquement mis à jour.

je me demandais si je pourrais pas partir des focntions index/equiv pour chercher à produire ce que je cherche à faire

Cela ne va pas être très simple à faire une telle formule pour ramener toute la ligne car avec une formule il faut :
- que la formule soit écrite dans chaque cellule à documenter.
- que toutes les lignes nécessaires soient pourvues de la formule.
- avec du texte copier il existe peu de formules qui permettent de sélectionner.
1
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
30 juil. 2010 à 10:53
Salut Gbinforme,

excellent code

Cordialement

Mike-31
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 30/07/2010 à 12:30
Re tous,

Pour suivre l'idée de Pijaku, avec des formules matricielles et plages nommées afin d'éviter les lignes vides

https://www.cjoint.com/?hEmBEsQ368

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
30 juil. 2010 à 12:49
Clap clap clap. Très bon ça. Bravo Mister Mike.
Je le garde celui là.
Bonne journée
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
29 juil. 2010 à 13:58
Salut,

Ce n'est pas très compliqué avec un code VBA, mais une fois les infos copiées sur les feuilles respectives que faut il faire sur la feuille registre (supprimer la ligne la ligne ou remplacer le code ex. saec par transféré afin que la ligne ne se copie pas plusieurs fois
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
29 juil. 2010 à 14:39
Bonjour mike31,

merci pour ta réponse.

"Ce n'est pas très compliqué avec un code VBA"..mouais...mais encore..lol...

"une fois les infos copiées sur les feuilles respectives que faut il faire sur la feuille registre "...les infos sur la feuille de registre doivent y rester. elles doivent "juste" être copiée sur les feuilles respectives les unes derrières les autres.

par la suite, je devrai trouver un truc pour faire en sorte que seule les lignes avec une date d'entrée s'incrivent.

le but final est d'avoir un fichier réparti en trois feuilles [registre, saec; mcae).
la première est celle qui centralise tout et les deux autres remplissent sur base des infos de la feuille de registre. A terme, il ne devrait se retouver sur les feuilles saec et maec, les enfants qui ont une date d'entrée (colonne D.IN) et une date de sortie (D.Out, colonne qui n'est pas encore créér).

mais tt cela doit se faire progressivement, donc je commence par essayer de trouve un truc pour avoir sur mes feuilles les enfants qui ont un saec et un mcae dans la colonne.

j'espere avoir été au plus clair..sinon...3615 code je recommence :-)

bien à toi.

berni.
0

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

Posez votre question
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
29 juil. 2010 à 17:29
Re,

Récupère ton fichier, on pourrait partir sur ce genre de code, à affiner

https://www.cjoint.com/?hDrCQENn7P
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
30 juil. 2010 à 07:44
Bonjour mike-31, bonjour à tous,

merci à toi mike-31 pour ta réponse. j'apprécie l'idée d'utiliser les code vba mais je me sens parfois un peu, bcp dépendant des autres car ne maitrissant que fort peu les codes, je me sens parfois déborder. j'essai de comprendre mais j'avoue, n'ayant pas l'esprit informaticien, qu'il me faut parfois bcp de temps pour comprendre et saisir notemment les codes.

donc, je vais regarder et chercher à comprendre les codes repris sous le fichier que tu m'envois.

parrallèlement à cela, je me demandais si je pourrais pas partir des focntions index/equiv pour chercher à produire ce que je cherche à faire.

j'imagine qu'il doit pouvoir avoir moyen de trouver une formule excel qui permettre la copie de certaines lignes d'une feuille sur une autre et ce en tenant compte de critères.

merci de me donner ton avis.

bien à toi.

berni.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
30 juil. 2010 à 10:58
Salut,
Mike, gb, mes hommages,
Une solution beaucoup moins élégante, mais qui respecte toutefois les désirs de Benji et de passer par une formule SI toute bête, associée à un filtre automatique.
Formule :
=SI(registre!$C2="saec";registre!A2;"") <sur la feuille saec>
=SI(registre!$C3="mcae";registre!A3;"") <sur la feuille mcae>
Ensuite régler le filtre automatique soit sur "tout", soit sur "non vides".
voir test ici. Les zones colorées sont à étirer sur tout le tableau
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
30 juil. 2010 à 19:32
Messieurs (mike_31, pijaku, gbinforme) bonjour ainsi qu'a tout les autres,

Merci à vous de vous donner la peine de m'aider. Je rentre à l'instant du bureau et je découvre ce que vous me laisser...j'ai de quoi faire ce samedi...
Comme vous le savez je suis novice et pas très doué en info..j'aime ça...c'est déjà ça...

Pour ce qui est des codes vba..cela m'intrigue et m'intéresse bcp mais plus j'avance plus je me demande si c'est fait pour moi... :-) ...j'avoue ne pas tout comprendre et cela m'énerve... :-)

Mais je ne lâche pas le morceau et c'est grâce ou à cause de vous (mike_31, pijaku, gbinforme, dodo..)

Je vais donc prendre qq heures pour voir ce que vous m'avez concocté...et je vous dit quoi demain...

Encore un grand merci pour votre aide tellement précieuse...et si un jour je deviens un grand programmateur, je sais à qui je le dois... :-)

bonne soirée et bon début de week..

berni...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
Modifié par gbinforme le 31/07/2010 à 09:19
bonjour à tous,

Voici encore un sujet qui prouve qu'il y a toujours beaucoup de façons de résoudre un problème selon ses connaissances, ses affinités, ses utilisateurs ou autres.

- tu as deux solutions en VBA (événementielle ou bouton)

Cela suppose que les postes acceptent les macros et la maintenance demande une certaine maitrise du sujet.

- tu as la formule matricielle très efficace de Mike

Il faut préparer le fichier avec la définition des plages qui ne sont évolutives qu'avec l'insertion de lignes et la mise en place d'autant de formules matricielles que nécessaire.

- tu as la formule de pijaku qui demande la création des formules sur les feuilles de ventilation et le paramètrage du filtre.

Cette formule peut aussi être orientée vers le filtre élaboré avec copie sur une autre feuille.
- tu crées une plage de 2 cellules de critères :
mil. Acc. 
saec 
(il suffit ensuite de changer le code en fonction du résultat à obtenir)
- tu sélectionnes la feuille à ventiler et menu données / filtrer / filtre élaboré
- tu sélectionnes ta feuille registre pour plage
- tu coches "copier vers un autre emplacement" et tu sélectionnes ta cellule A1 de la feuille concernée.
- tu sélectionnes ta plage de critères.
- en validant tu as ta sélection.
Ainsi tu n'as rien à changer à ton classeur, mis à part les 2 cellules de critères, et en quelques clics tu as ton résultat.

benji71, c'est à toi de choisir ta solution.

PS :
As-tu pensé tout simplement à utiliser un filtre auto sur ta feuille "registre" ?

Toujours zen
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
31 juil. 2010 à 19:52
Bonjour gbinforme, mike-31, pijaku et à tout les autres,

Gbinforme, merci de ta réponse et de la synthèse des propositions.
J'ai regardé ce que pijaku propose et je trouve cela assez bon (si je peux me permettre).

J'ai pas encore tout analyser mais cela ressemble à ce que je cherchais.
Dans le futur je vais essayer de mieux maîtriser vba mais pour un « amateur » comme moi cela prend bcp de temps.

Cela étant la proposition de pijakuressemble à ce que je voulais faire donc je vais chercher à comprendre les formules et je vous dis quoi après.
Pour rappel, mon idée est d'avoir une « feuille de donnée » qui me sert de feuille de départ et dans laquelle je complète des informations. Cette feuille comprend une quarantaine de colonnes et je suis actuellement 300 lignes.

Si j'étais très doué, je ferais un userform (ce que je chercher et ai commencé à faire....mais cela prends du temps) qui me permettrai d'avoir des facilités d'encodages.

Cette première feuille est en fait le point de départ de tout. De là, je pourrais renvoyer sur d'autre feuille en fonction du milieu d'accueil de l'enfant. C'est ce que j'ai commencé à faire grâce à vous.

Autre exemple d'application à venir, sur une feuille appelé « santé » je voudrais à partir des infos de la feuille de « base de données » et en fonction des milieux d'accueils pouvoir imprimer une feuille sur laquelle j'aurais toutes les infos pour les auxiliaires de puéricultrices.

Donc, je vais essayer de voir si possibilité d'avoir des recoupements à partir de la feuille « base de donnée »

Ma question est donc le suivant, excel est-il un outil assez « puissant » pour ce genre de chose ?

Vous remerciant encore pour votre aide, j'espère encore pouvoir compter sur vos remarques et proposition d'aménagement de mes feuilles et données.

Bonne soirée à toi, à vous.

Amicalement vôtre

Berni.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
31 juil. 2010 à 21:22
bonjour

excel est-il un outil assez « puissant » pour ce genre de chose ?

Ce que tu as vu d'excel, d'après tes dires doit représenter 5 % des possibilités.

Disons qu'avec un peu plus d'expérience, j'en utilise 15/20 % mais tu vois la marge qu'il te reste surtout si tu rentres un peu plus avant dans le VBA.

As-tu testé le filtre élaboré ?
Suite à l'idée de pijaku, il me semble que cela devrait être très utile pour ce que tu cherches et c'est plus simple à réaliser lorsque tu auras intégré le principe.
0