Copier des lignes avec condition sur feuille avec formules

Bonjour,

j'ai cherche ici et là sur le Web et sur ce forum et j'avoue que je ne suis pas du tout une pro d'excel. J'utilise cette application très rarement et donc je ne suis pas familière avec les calculs, les macros et autres formules du genre.

J'aimerais avoir une réponse rapide puisque je viens de partir une OBNL pour sauver un projet que la Ville a voulu se débarasser et je m'occupe du fichier d'inscription des membres et participants aux activités.

Alors voilà mon petit problème.

J'ai deux feuilles, l'une qui me servira de tableau de présence pour l'animatrice et l'autre feuille ce sont tous les info des membres (date de naissance, adresse, nom... et aussi les jours auxquels ils sont inscrit à l'activité.

J'ai trouvé le moyen de transformer une cellule «date de naissance» en calcul de «mois» que j'ai transféré dans la feuille de présence. Bref, ce que je souhaite c'est de faire en sorte que ceux qui sont inscrit le «mardi» disons colonne M de la feuille de membres toutes les données de la ligne de ce membre soit transférées dans la feuille de présence dans une ligne en respectant les formules des cellules dont j'ai fait convertir des données ou juxtaposé des informations de cellule (mois) ((nom, prénom).

Ainsi je vais créer une feuille de présence pour chaque jour et selon les jours auxquels les membres sont inscrit, ils apparaîtront sur les feuilles de présence correspondant au bon jour sans que j'aie à le faire à la mitaine.

J'aimerais que ce soit simple. J'espère que ça l'est parce que j'ai la tête en bouilli depuis des jours, je crains ne pas réussir à réfléchir convenablement.

Je m'excuse si jamais le sujet à déjà été abordé.

Merci d'avance pour votre aide.

Bonjour et bienvenue sur le forum,

Anonymez vos feuilles et mettez le fichier en téléchargement.

Ca facilitera la compréhension.

cordialement

poster fichier

Merci ddetp88 pour votre réponse.

En effet ça aiderait un visuel. Ignorant comment anonymez je vous mets des images brouillées des deux feuilles en question.

feuille membre feuille presence mardi

Alors la feuille membre contient de nombreuses informations que nous voulons avoir sur nos membres, alors que la feuille de présence elle ne possède que quelques-unes des info qui sont en plus converties ou juxtaposé par une formule.

Si dans la colonne du mardi c'est écrit mardi j'aimerais que toutes les info essentielles de ce membre soient transférées dans la feuille de présence du mardi.

Je suis en cours de création du fichier c'est pour cela qu'il n'y a pas beaucoup de données. Si vous avez de meilleures suggestions pour gérer les membres et les jours qu'ils participent à une activité, je suis tout ouïe ( ou plutôt tout yeux).

Merci encore!

Hé! Pas cool il faut refaire les feuilles pour faire un exemple.

Si j'ai un peu de temps, je regarde.

Cordialement

voici une proposition.

bon courage

ddetp

Merci pour cet exemple...

Mais là il faut trouver la solution pour que ceux qui sont inscrit le lundi apparaissent automatiquement dans la feuille de présence du lundi. Et en plus de mettre les données dans les bonnes cases, il y a des forumles qui doivent être appliquées.

Je trouve ça bien le menu déroulant des semaines, mais est-ce que ça changera le contenu en conséquence dans toutes les cellules de cette feuille?

Je suis ignorante en Excel... autodidacte disons. Je connais bien mieux les logiciels de traitements d'image!

Merci pour ton aide précieuse!

Bonjour,

Désolé j'ai mis en téléchargement la trame. Demain soir en rentrant je mets celui avec les macros.

Cordialement

le voici.

Activez les macros.

Au changement de date une macro se déclenche et la feuille se complète.

Cordialement

ddetp88

C'est bien, mais je me suis peut-être mal fait comprendre...

Mmmh... Dans la feuille de présence du Mardi, j'aimerais pouvoir voir que les gens qui se sont inscrits le mardi. Donc que l'information soit transférée de la fiche Membres à la fiche Présence en respectant les formules dans les cellules en question.

Par exemple, le mardi est inscrit:

Gilles Bambin2 2009-09-03 Véronique (fiche Membres)

Je voudrais voir apparaitre dans la fiche de présence du Mardi

65 Bambin2, Gilles Véronique

Étant le nombre de mois, le Nom et Prénom et le nom de la mère

Sans que j'aie à le faire manuellement.

Un code du genre :

Je ne vois pas d'inconvénient à avoir une feuille par jour pour les présences.

Juste pour info, la colonne des dates dans la feuille de présence c'est pour que les participants mettent leurs initiales lors du jour de l'activité pour signaler leu présence. Donc ces cases restent vides à l'impression.

Peut-être est-ce trop complexe comme programmation?

Quand vous dites :

Mmmh... Dans la feuille de présence du Mardi, j'aimerais pouvoir voir que les gens qui se sont inscrits le mardi. Donc que l'information soit transférée de la fiche Membres à la fiche Présence en respectant les formules dans les cellules en question.

C'est bien le cas si on modifie la cellule F2 de la feuille présence en 03/02/2015 (on cible les mardis). La macro va chercher les coordonnées des personnes inscrites le mardi de la feuille Membres.

Quand vous dites

en respectant les formules dans les cellules en question

.

Faut-il comprendre qu'il y a des formules dans certaines cellules?

Si c'est le cas, il faudrait les indiquer sur le fichier et le remettre ne téléchargement.

Cordialement

Navrée pour les délais de réponses, j'ai été prise dans un tourbillon cette semaine, en plus d'avoir de mauvaises nouvelles concernant le projet.

Bref, vous êtes un ange de patience.

Le fichier que vous m'avez donné j'arrive à changer les date mais rien ne change dans les noms et âge. Mais j'ai bien vu que vous avez transformez les case de manière à accueillir des données de la feuille présence et de le transformer. Mais ça ne fonctionne pas. Ils disent d'activé les macros, je vais dans sécurité et je les active.

J'ai réussi une fois à avoir une erreur de compilation : Sub CompletePresence()

Mais quand je change les dates rien d'autres ne change.

Je suis curieuse de savoir comment vous faite. c'est de la programmation tout court? Ou bien vous faite des manipulations à la main pour faire des macros?

Merci de votre patience!

Bonjour,

Le but des macros est entre autre de gagner du temps dans les tâches répétitives.

Il faut effectivement modifier le niveau de sécurité des macros pour utiliser le fichier.

Consultez ce tuto https://www.excel-pratique.com/fr/astuces_vba/activer_les_macros.php

cordialement

Merci ddetp88!

Reste que je me retrouve avec une erreur et que la seule chose qui change lorsque je change la date ce sont les autres dates mais aucune données de la fiche (nom enfant, tuteur, téléphone) ne change.

Ça me donne cette erreur.

erreur

Je ne sais pas trop quoi faire. Pour le reste du code, je comprends plutôt bien la programmation, je pourrai faire les modifications nécessaire.

Merci!

Nous allons y arriver!

Dans le code, il me semble qu'il manque une déclaration de la variable col.

Il faut l'ajouter dans la ligne de déclaration Dim...

Il est vrai qu'excel 2007 est sensible.

Option Explicit
Sub CompletePresence()
Application.EnableEvents = False
Dim NbM, c, i, j, colAs Integer
Dim jour As String
Feuil2.Unprotect
Feuil2.Range("B4:E50").ClearContents
jour = Format(Feuil2.Range("F2").Value, "dddd")
NbM = Feuil1.Range("B" & Rows.Count).End(xlUp).Row
c = 4
' recherche et écriture
On Error Resume Next
col = Feuil1.Range("J1:P1").Find(what:=Feuil2.Range("B1").Value).Column
    For j = 2 To NbM
        If Feuil1.Cells(j, col).Value = Feuil2.Range("B1") Then
            ' ecriture des coordonées des personnes disponible ce jour
            Feuil2.Cells(c, "B") = Format(Feuil1.Cells(j, "C").Value, "mm") & " mois"
            Feuil2.Cells(c, "C") = UCase(Feuil1.Cells(j, "B").Value)  ' Nom de la mère
            Feuil2.Cells(c, "D") = Feuil1.Cells(j, "A").Value & " - " & Feuil1.Cells(j, "D").Value ' prénom enfant et tuteur
            Feuil2.Cells(c, "E") = Feuil1.Cells(j, "G").Value 'téléphone
            c = c + 1
        End If
    Next j

Application.EnableEvents = True
Feuil2.Protect
End Sub

Bon courage pour la suite.

Merci, Merci, Merci! Mille fois!

Ça fonctionne. c'est fantastique! Je suis très contente.

Mais j'ai une dernière mini chose que je ne saisie pas. Comment puis-je changer le contenu des autres cellules fixes. Je n'ai accès qu'à la cellule F2 tout le reste est figé et j'aimerais bien réécrire les titres de mes colonnes. J'ai changé le texte dans la programmation mais ça ne semble pas affecté le contenu des cellules.

Et aussi est-ce que si j'ai 30 personnes par jour les lignes s'ajouteront automatiquement? Est-ce que le fait qu'elles soient roses et blanches par intervalle aussi c'est automatique?

Je suis tannante, mais je suis curieuse.

Bonjour,

Il suffit de déprotéger la feuille pour accéder à l'ensemble du document. Il faut tout de même faire attention à une cellule, celle où le jour s'inscrit. Ily a une formule.

Pour le reste, le nombre d'enfants peut augmenter le code prévoit l'adaptation.

Seule la zone d'effacement ne l'était pas. Je viens de le faire.

L'alternance rose/blanc se fera automatiquement ainsi que le quadrillage.

Content d'avoir pu vous rendre service ainsi qu'aux bambins!

ddetp

Superbe! Un travail de pro!

Merci infiniement.

Nicole

Bonjour à nouveau,

Je cherche désespéremment la ligne de code qui dicte le format du tableau (ligne rose et blanche par intervalle, bordure).

C'est que je souhaite ajouter une colonne, j'ai réussi à la faire apparaître mais elle n'a pas l'apparence du reste du tableau.

Aussi, je me demandais qu'elle était le code si on veut qu'une valeur soit changée par un signe.

J'ai rajouté cette ligne de code:

Feuil2.Cells(c, "N") = Feuil1.Cells(j, "I").Value 'Allergie

Par exemple, Allergie aux noix, dans la feuille de présence je souhaite juste voir un * dans la case de l'allergie. Donc peu importe le contenu inscrit dans la colonne allergie de la feuille de membre, je veux juste voir apparaître un signe (peu importe *) dans la feuille de présence.

J'ai bien essayé quelque chose du genre:

If Feuil2.Cells(c, "N") Then Feuil1.Cells(j, "I").Value = "*" 'Allergie

Mais ça ne fonctionne pas. Je suppose que c'est un code plus complexe.

Bonjour,

Pour les lignes couleur une sur deux c'est dans la mise ne forme conditionnelle (MFC) la formule est celle-ci:

=SI($A4<>"";MOD(LIGNE();2);"")

Il suffit de modifier la plage pour laquelle vous voulez voir intervenir la formule.

Attention tout de même en ajoutant des colonnes. Si c'est vers la fin pas de problème, si c'est dans les premières, il faudra réadapter le code.

Ajouter vos colonnes et mettez le fichier en PJ. Je vous donnerai un coup de main au cas où.

Cordialement

oilà j'ai fait quelques ajustements.

La seule chose que je n'arrive pas à faire c'est de retirer le «mar-», «mer-», «jeu-» devant les dates de la feuille de présence, si possible, juste mettre les nombres (02/24). Je ne vois pas où se trouve cette info dans le code.

Et finalement, tel que je disais précédemment, pour la case allergie ce n'est pas nécessaire de savoir à quoi dans la feuille de présence, juste de mettre un X ou tout autre signe est suffisant. Donc si dans la feuille membre il y a une valeur dans la colonne allergie, il faut qu'elle se transpose juste par un signe X.

Sinon, si je devais ajouter des informations avant les colonne de date, je suppose que je dois simplement changer... le fameux F2 par un G2 par exemple et ainsi pour les autres données changer la cellule de destination.

Merci bien!

Rechercher des sujets similaires à "copier lignes condition feuille formules"