Ajouter ligne d'une liste de choix dans une autre feuille
Résolu
Nai
Messages postés
714
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Me revoilà vers vous pour un problème que je trouve complexe.
Peut-être même que j'en demande trop pour Excel :p
M'enfin, j'expose l'idée.
J'ai un classeur contenant :
- Des feuilles d'ateliers
- Des feuilles de classes
Les cellules des feuilles de classes ont une liste de choix des ateliers sous chaque jour.
Les cellules des feuilles d'ateliers attendent de recevoir l'ordre d'ajouter un enfant d'une classe ayant été ajouté à son atelier.
Exemple :
Classe de Mme JEANNET. Cellule D8 (qui concerne Manon).
Cette cellule est une liste de choix (qui recense les ateliers).
Je clique, dans cette liste, sur "Jeux".
Je sais que Manon, tous les lundis de la période 1 (P = période), à fait l'atelier "Jeux".
Maintenant, je veux savoir qui a fait l'atelier "Jeux".
Je vais dans la feuille d'atelier "Jeux".
Je souhaite voir dans cette feuille le NOM et le Prénoms des enfants ayant participer à l'atelier. Dans notre exemple : MARTIN en A40 et Manon B40.
Cela me parait difficile. Je sais ce que je souhaite mais peine à y arriver. Peut-être que quelqu'un pourrait m'aider :)
Le fichier en question : https://www.cjoint.com/c/DIubbMFxfYe
Merci d'avance !
Me revoilà vers vous pour un problème que je trouve complexe.
Peut-être même que j'en demande trop pour Excel :p
M'enfin, j'expose l'idée.
J'ai un classeur contenant :
- Des feuilles d'ateliers
- Des feuilles de classes
Les cellules des feuilles de classes ont une liste de choix des ateliers sous chaque jour.
Les cellules des feuilles d'ateliers attendent de recevoir l'ordre d'ajouter un enfant d'une classe ayant été ajouté à son atelier.
Exemple :
Classe de Mme JEANNET. Cellule D8 (qui concerne Manon).
Cette cellule est une liste de choix (qui recense les ateliers).
Je clique, dans cette liste, sur "Jeux".
Je sais que Manon, tous les lundis de la période 1 (P = période), à fait l'atelier "Jeux".
Maintenant, je veux savoir qui a fait l'atelier "Jeux".
Je vais dans la feuille d'atelier "Jeux".
Je souhaite voir dans cette feuille le NOM et le Prénoms des enfants ayant participer à l'atelier. Dans notre exemple : MARTIN en A40 et Manon B40.
Cela me parait difficile. Je sais ce que je souhaite mais peine à y arriver. Peut-être que quelqu'un pourrait m'aider :)
Le fichier en question : https://www.cjoint.com/c/DIubbMFxfYe
Merci d'avance !
A voir également:
- Ajouter ligne d'une liste de choix dans une autre feuille
- Liste déroulante de choix excel - Guide
- Partage de photos en ligne - Guide
- Bruler une feuille de laurier - Guide
- Aller à la ligne dans une cellule excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
35 réponses
Heu, petit problème, peut-être devrais-je ouvrir un nouveau sujet, mais bon...
De nombreuses cellules dépendent d'autres cellules, toujours selon le fichier que nous nous échangeons.
Exemple : Feuille Accueil, C41 à C45 et E41 à E45 sont entrées par l'utilisateur.
Mais, feuille Jeux, C41 et E41 de la feuille Jeux, sont respectivement D37 et F37 de la feuille Accueil.
Lorsque je modifie D37 ou F37 de la feuille Accueil, C41 et E41 de la feuille Jeux ne se mettent pas à jour automatiquement... Ce problème est le même sur toutes les périodes et tous les ateliers, gênant donc.
La formule doit-elle être différente de =Accueil!C41 ?
Aussi, il y a un soucis avec les validations de données pour les dates.
En effet, C39:J39 sont des cellules formatées en dates. La validation de données veut que ces dates soient comprises entre D37 et F37, mais il accepte toutes les dates, sauf C39 de la feuille Jeux qui semble comprendre qu'il doit être compris entre D37 et F37 de la feuille Accueil...
Merci encore pour les derniers détails :D
EDIT : Le calcul refonctionne.
Fichier -> Options -> Formules. Dans la zone "Mode de calcul", puis "Calcul du classeur", cliquer sur "Automatique". Excel 2010
EDIT 2 : Les validations de données refonctionnent.
Dans mon cas, ne pas cliquer sur "Ignorer si vide". Excel 2010
Bien à vous,
Naï
ps: je surveille tous mes sujets non résolus, si solution vous avez, je la lirais à coup sûr :)
De nombreuses cellules dépendent d'autres cellules, toujours selon le fichier que nous nous échangeons.
Exemple : Feuille Accueil, C41 à C45 et E41 à E45 sont entrées par l'utilisateur.
Mais, feuille Jeux, C41 et E41 de la feuille Jeux, sont respectivement D37 et F37 de la feuille Accueil.
Lorsque je modifie D37 ou F37 de la feuille Accueil, C41 et E41 de la feuille Jeux ne se mettent pas à jour automatiquement... Ce problème est le même sur toutes les périodes et tous les ateliers, gênant donc.
La formule doit-elle être différente de =Accueil!C41 ?
Aussi, il y a un soucis avec les validations de données pour les dates.
En effet, C39:J39 sont des cellules formatées en dates. La validation de données veut que ces dates soient comprises entre D37 et F37, mais il accepte toutes les dates, sauf C39 de la feuille Jeux qui semble comprendre qu'il doit être compris entre D37 et F37 de la feuille Accueil...
Merci encore pour les derniers détails :D
EDIT : Le calcul refonctionne.
Fichier -> Options -> Formules. Dans la zone "Mode de calcul", puis "Calcul du classeur", cliquer sur "Automatique". Excel 2010
EDIT 2 : Les validations de données refonctionnent.
Dans mon cas, ne pas cliquer sur "Ignorer si vide". Excel 2010
Bien à vous,
Naï
ps: je surveille tous mes sujets non résolus, si solution vous avez, je la lirais à coup sûr :)
Re,
Et que voulez vous en fin de compte, car je ne vois pas trop en vous lisant ?????
Chez moi le calcul est par defaut en Auto et tout se met a jour sans probleme !!!
Et que voulez vous en fin de compte, car je ne vois pas trop en vous lisant ?????
Chez moi le calcul est par defaut en Auto et tout se met a jour sans probleme !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
J'ai un fichier avec detection d'insriptions multiples par atelier au cas ou il y aurait inscription directement sur les onglets ateliers
A vous de voir
J'ai un fichier avec detection d'insriptions multiples par atelier au cas ou il y aurait inscription directement sur les onglets ateliers
A vous de voir
J'y avais pensé, mais je me suis dis que le plus simple serait d'interdire la saisie dans les onglets des ateliers, mais je n'ai pas réussi.
Ça m'intéresse, en effet :)
Ça voudrait dire qu'il ne serait pas possible d'ajouter un enfant directement dans les onglets des ateliers ? Uniquement depuis les classes ?
Ça m'intéresse, en effet :)
Ça voudrait dire qu'il ne serait pas possible d'ajouter un enfant directement dans les onglets des ateliers ? Uniquement depuis les classes ?
Bonjour,
Comme vous n'avez pas verrouille toutes les cellules des onglets ateliers, j'ai donc pense a traiter les doublons. Si vous verrouillez toutes les cellules des ateliers (protection feuille avec mot de passe et protection du code VBA aussi puisque le mot de passe sera ecrit dedans pour les ecritures dans les onglets), plus besoin de traiter les doublons puisque pas possible d'ecrire manuellement et presence dans un atelier testee par programme a chaque saisie dans onglets classes
A+
Comme vous n'avez pas verrouille toutes les cellules des onglets ateliers, j'ai donc pense a traiter les doublons. Si vous verrouillez toutes les cellules des ateliers (protection feuille avec mot de passe et protection du code VBA aussi puisque le mot de passe sera ecrit dedans pour les ecritures dans les onglets), plus besoin de traiter les doublons puisque pas possible d'ecrire manuellement et presence dans un atelier testee par programme a chaque saisie dans onglets classes
A+
Tout simplement, protéger les cellules :D
En effet, c'est bon.
J'ai présenté et donné le fichier à ma collègue, et, elle a fait quelque chose qu'elle n'aurait pas du faire :
Dans les feuilles des classes, elle ajoute un groupe à l'atelier "Jeux". Pour tester. Ensuite, elle a voulu retirer ces enfants. Elle a sélectionné le groupe d'enfant, et, au lieu de faire Clic droit, case blanche, elle a appuyé sur le bouton Suppr.
Du coup, dans la classe, les enfants n'ont plus leur atelier, mais dans l'atelier Jeux ils s'y trouvent encore.
Comment pourrait-on interdit ce type de suppression ?
Ou alors, faire comme si la case blanche était égale à la touche Suppr ?
En effet, c'est bon.
J'ai présenté et donné le fichier à ma collègue, et, elle a fait quelque chose qu'elle n'aurait pas du faire :
Dans les feuilles des classes, elle ajoute un groupe à l'atelier "Jeux". Pour tester. Ensuite, elle a voulu retirer ces enfants. Elle a sélectionné le groupe d'enfant, et, au lieu de faire Clic droit, case blanche, elle a appuyé sur le bouton Suppr.
Du coup, dans la classe, les enfants n'ont plus leur atelier, mais dans l'atelier Jeux ils s'y trouvent encore.
Comment pourrait-on interdit ce type de suppression ?
Ou alors, faire comme si la case blanche était égale à la touche Suppr ?
Bonjour,
Je regarde la chose. Je vais mettre "Suppr." a la place de la case blanche pour effacement. Voir pour invalider la touche Suppr. ou autre idee qui me viendra
A+
Je regarde la chose. Je vais mettre "Suppr." a la place de la case blanche pour effacement. Voir pour invalider la touche Suppr. ou autre idee qui me viendra
A+
Bonjour,
pour empecher toutes modifications manuelles des ateliers sur les onglets classes,dans le VBA de chaque Onglet classe, remplacez
'par:
A+
pour empecher toutes modifications manuelles des ateliers sur les onglets classes,dans le VBA de chaque Onglet classe, remplacez
'Changement nom onglet
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
ActiveSheet.Name = Target
End If
End Sub
'par:
'Changement nom onglet et invalide changement Ateliers en manuels
Private Sub Worksheet_Change(ByVal Target As Range)
derlig = Cells(8, 1).End(xlDown).Row
If Not Intersect(Target, Range("A1")) Is Nothing Then
ActiveSheet.Name = Target
ElseIf Not Application.Intersect(Target, Range("D8:M" & derlig)) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
A+
Re,
suite:
Dans le module PopUpMenu_L:
ajoutez les lignes en gras
et
Dans 'Changement nom onglet et invalide changement Ateliers en manuels
Private Sub Worksheet_Change(ByVal Target As Range) nouvelle version,
a la suite d'erreur sur cellule vide, remplacez la ligne:
par
suite:
Dans le module PopUpMenu_L:
ajoutez les lignes en gras
Function CreateSubMenu_L() As CommandBar
''Name for popup menu
Const lcon_PuName = "PopUpLundi"
''Create some objects
Dim cb As CommandBar
Dim cbc As CommandBarControl
Dim cel As Range
Dim Plage As Range
Dim derligne As Long
Dim c, x
Dim derlig
''Ensure our popup menu does not exist
DeleteCommandBar_L lcon_PuName
''Add our popup menu to the CommandBars collection
Set cb = CommandBars.Add(Name:=lcon_PuName, Position:=msoBarPopup, MenuBar:=False, Temporary:=False)
'' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Plage de nom colonne A
With Worksheets("Accueil")
If Jour = "L" Then
Set Plage = .Range("B7:B21")
ElseIf Jour = "J" Then
Set Plage = .Range("B22:B36")
Else
End If
End With
Set cbc = cb.Controls.Add
With cbc
.Caption = "Suppr."
.OnAction = "Recup_Nom_Atelier_L"
.Tag = .Caption
End With
For Each cel In Plage
'Add some demo controls
Set cbc = cb.Controls.Add
With cbc
.Caption = cel
.OnAction = "Recup_Nom_Atelier_L"
.Tag = .Caption
End With
Next cel
Set cbc = cb.Controls.Add
With cbc
.Caption = "Suppr."
.OnAction = "Recup_Nom_Atelier_L"
.Tag = .Caption
End With
'' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Set CreateSubMenu_L = cb
End Function
et
Sub Recup_Nom_Atelier_L()
'get the tag property of the clicked control
Atelier_Choisi = Application.CommandBars.ActionControl.Tag
If Atelier_Choisi = "Suppr." Then
Atelier_Choisi = ""
End If
End Sub
Dans 'Changement nom onglet et invalide changement Ateliers en manuels
Private Sub Worksheet_Change(ByVal Target As Range) nouvelle version,
a la suite d'erreur sur cellule vide, remplacez la ligne:
ElseIf Not Application.Intersect(Target, Range("D8:M" & derlig)) Is Nothing Then
par
ElseIf Not Application.Intersect(Target, Range("D8:M" & derlig)) Is Nothing And Target <> "" Then
Ca ne semble plus fonctionner...
J'ai une "incompatibilité de type" avec la ligne suivante :
Une idée ? :)
J'ai une "incompatibilité de type" avec la ligne suivante :
ElseIf Not Application.Intersect(Target, Range("D8:M" & derlig)) Is Nothing And Target <> "" Then
Une idée ? :)
Ça fonctionne :D
Est-ce qu'on peut indiquer à l'utilisateur que pour supprimer des enfants d'un atelier il doit utiliser le bouton Supp. et non la touche Suppr, au moment où il appuie sur Suppr ?
Est-ce qu'on peut indiquer à l'utilisateur que pour supprimer des enfants d'un atelier il doit utiliser le bouton Supp. et non la touche Suppr, au moment où il appuie sur Suppr ?
Re,
code pour chaque onglet classe
code pour chaque onglet classe
'Changement nom onglet et invalide changement manuels
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo sortie
derlig = Cells(8, 1).End(xlDown).Row
If Not Intersect(Target, Range("A1")) Is Nothing Then
ActiveSheet.Name = Target
ElseIf Not Application.Intersect(Target, Range("D8:M" & derlig)) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
retval = MsgBox("[ SUPPRESSION ATELIER ]" & vbNewLine & _
"Utilisez la liste des ateliers et click sur Suppr." & vbNewLine & _
"en début ou fin de liste", , "¤ ALERTE ¤")
End If
sortie:
End Sub