Macro

Bonjour, j'ai un fichier excel correspondant au planning des salles en fonction des horaires.

Pour chaque salle,et chaque horaire , des groupes allant de 1 à 20 sont noté dans les cases, correspondant à qui va être dans les salles à tel heure.

Je souhaiterai générer une macro qui me permet de par numéro de groupe , m'afficher son planning. Par exemple , pour le groupe 2 , je voudrais qu'il me dise que lundi 9h30 -10H30 dans la Salle A, jeudi 15h30-16h30 dans la salle C , ect

Cependant , je ne sais pas trop par où commencer, je ne demande à qu'on le fasse à ma place , mais que l'on m'aide si c'est possible

Merci ,

Bonjour paris7501,

Cependant , je ne sais pas trop par où commencer, je ne demande à qu'on le fasse à ma place , mais que l'on m'aide si c'est possible

Je pense qu'il faudrait commencer par nous transmettre un fichier afin d'avoir une meilleur compréhension de ta demande et d'avoir un support pour ne pas que l'on le fasse à ta place.

4test.xlsx (11.43 Ko)

Désolé voici le fichier avec lequel je travaille

Re Paris7501,

Voici un essai en pièce jointe. je ne sais pas sous quelle format tu veux les résultats finaux. Je te laisse me redire si tu souhaites changer la mise en forme.

4test-1.xlsm (21.96 Ko)

Un autre fichier avec le tableau inversé qui évite les erreurs #N/A que j'ai pu voir par la suite, car je ne pense pas que l'on puisse transposer un array à 2 dimensions sans erreur ( que disent les expert du forum ? )

1test-1.xlsm (22.58 Ko)

Merci beaucoup, c'est parfait, je suis entrain de comprendre le code exactement, pour voir comment cela fonctionne mais grâce à vos commentaires, c'est très facile.

J'aurai d'autre petites question, en fait mon but final est que dans chaque groupe , il y a un ensemble de personne. Et lorsque je tape le nom d'une personne , elle le relie au groupe dont elle est ,et qu'elle affiche que le contenu du groupe 1.

par exemple, je recherche marie qui est dans le groupe 2 , elle doit afficher que le programme du groupe 2

4test-1-3.xlsm (22.83 Ko)

Voici ton fichier en retour,

2 nouvelles feuilles:

- une feuille "BDD" afin de renseigner les prénoms des personnes et de leurs affecter un groupe, tu peux rajouter à la suite la liste se mettra à jour automatiquement.

- une feuille "Creneau reservation" avec une liste de choix, dès le changement de celle ci le tableau de réservation de salle se met à jour.

8test-1-3.xlsm (31.36 Ko)

Pour créer la base de donnée, tu as tout rentrer à la main ou il est possible de leur faire automatiquement ? Pcq j'ai une grande liste de personne dans chaque groupe et je voulais savoir si je devais les rentrer un par un ou pas ?

merci pour tous

Bonjour paris7501, j'ai fais une macro afin de remettre en liste verticale. Mais tout dépend du format de ta liste à toi moi j'ai fais en fonction de la liste que tu m'as donné dans ton exemple.

Oui la liste est comme je t'ai montrer dans le fichier , juste elle est plus remplie. J'ai juste à mettre cette liste sur une feuille et exécuter la macro pour qu'elle devienne en verticale ?

Voici une macro pour transformer ta liste, il te faut créer une feuille nommé "BDD", insérer un nouveau module dans l'éditeur VBA et copier le code ci dessous:

Sub lstvertical()
Dim s As Worksheet

Set s = Sheets("BDD")

    For c = 1 To 20
    derlgn = Sheets("Feuil1").Cells(Rows.Count, c).End(xlUp).Row
        For i = 35 To derlgn
        derl = Sheets("BDD").Cells(Rows.Count, 1).End(xlUp).Row
        s.Cells(derl + 1, 1) = Sheets("Feuil1").Cells(i, c)
        s.Cells(derl + 1, 2) = Sheets("Feuil1").Cells(34, c)
        Next i
    Next c

End Sub

salut Florian,

screen

tu travailles sur ton PC au lieu d't'entraîner pour le marathon ?

ton coach dhany

Bonjour dhany,

Je ne suis pas encore rendu au marathon , ce qui me donne encore du temps pour pianoter sur mon clavier

Merci pour tout ,

Juste sur la page créneau de réservation quand tu fais la liste déroulante t'a juste eu à mettre prénom mais quand t'a déclarer que prénom c'est tout les lignes prénom de BDD

Et Pour l'affichage de groupes : =SI(A2="";"";"Groupe N° " & RECHERCHEV(A2;Groupes;2;FAUX)) : pareil pour groupe comment ils déclarent que groupes c'est bien cela

J'ai utilisé le gestionnaire de noms afin de déclarer des plages dynamiques.

Merci pour tout , cela m'a était d'une très grande aide

Encore un petit soucis, si je souhaite faire un récapitulatif d'afficher dans une page chaque client et son emploi du temps mais tout à la suite . Je sais cela fera un grand fichier mais c'est pour le récapitulatif

Re paris7501,

Voici ton fichier en retour qui dois correspondre à ta demande.

Je pense qu'il doit y avoir une façon plus simple ou différente pour coder tout ça, que je serais curieux de voir.

Certain expert VBA de ce forum doivent certainement diviser le nombre de ligne de code par 2.

8test-1-3.xlsm (40.39 Ko)

Merci, là c'est plus une question technique , j'ai crée une macro qui modifie la taille du tableau et qui mets en gras les bâtiments. Comment je fais pour que dès que je change de nom , la macro se réactualise automatiquement. J'ai bien compris qu'il fallait mettre dans worksheet change mais j'y arrive pas.

Bonjour paris7501,

Voici le code afin de mettre en gras la colonne "A" de la feuille récapitulative lors d'un changement de cette colonne.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim derlgn&

derlgn = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range(Cells(3, 1), Cells(derlgn, 1))) Is Nothing Then
    Range(Cells(3, 1), Cells(derlgn, 1)).Font.Bold = True
End If
End Sub
Rechercher des sujets similaires à "macro"