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

tableau à cocher, créant des listes

5 réponses
Avatar
Emma
Bonsoir!

Plusieurs questions qui ne doivent pas être très complexes pour les balèzes
du site:

- comment créer une macro qui me permet à son activation de générer des
croix dans une cellule au clic?
==> 1 clic = 1 croix (ou un autre signe de validation)

- comment générer des listes de groupes (sur une feuille 2) si j'ai les noms
des participants en colonne A, et les noms de mes groupes en ligne 1 (sur
une feuille 1), ou l'appartenance à un groupe est validée par une croix qui
croise ligne est colonne?
==> Cyril coché en groupe 3 sur la feuille 1, se retrouve dans une liste
avec tous ceux du groupe 3 dans la feuille 2 automatiquement(1 nom pas
cellule)

Peut-etre est-ce cela que vous appelez "tableau croisé dynamique"... J'ai
cherché mais je ne vois pas bien comment m'y prendre.

Merci

Emma

5 réponses

Avatar
FFO
Bonjour Emma

Je te propose pour cocher une cellule en Feuil1 de mettre dans le VBA de la
feuille
Soit pour un simple click ce code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target = "X"
End Sub


inconvénient de taille l'impossiblité de sélectionner une quelconque cellule
à d'autre fin que de lui mettre un "X"

Soit pour un double clik ce code :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Target = "X"
End Sub

ce qui évite l'inconvénient du premier code

Pour regrouper dans la Feuil2 les noms avec la configuration suivante :

Feuil1
Colonne A les Noms
Ligne 1 les noms des colonnes (Nom, Group1, Group2, Group3 etc....)
A l'intersection les croix
Feuil2
Ligne 1 les noms des colonnes (Group1, Group2, Group3 etc...)

Je te propose ce code à mettre dans une macro :

Sheets("Feuil1").Activate
For Each c In Worksheets("Feuil1").Range("B1", [IV1].End(xlToLeft))
Sheets("Feuil2").Activate
For Each d In Worksheets("Feuil2").Range("A1", [IV1].End(xlToLeft))
If c = d Then
d.Activate
Choix = 1
Exit For
End If
Next
If Choix <> 1 Then
MsgBox (c & " inexistant")
Exit Sub
Else
Sheets("Feuil1").Activate
i = 0
Do While c.Offset(i, 0).Row <= Range("A65535").End(xlUp).Row
If c.Offset(i, 0) = "X" Then
Sheets("Feuil2").Cells(65535, d.Column).End(xlUp).Offset(1, 0) =
Sheets("Feuil1").Range("A" & c.Offset(i, 0).Row)
End If
i = i + 1
Loop
End If
Next

Celà devrait te convenir

Dis moi !!!!


Bonsoir!

Plusieurs questions qui ne doivent pas être très complexes pour les balèzes
du site:

- comment créer une macro qui me permet à son activation de générer des
croix dans une cellule au clic?
==> 1 clic = 1 croix (ou un autre signe de validation)

- comment générer des listes de groupes (sur une feuille 2) si j'ai les noms
des participants en colonne A, et les noms de mes groupes en ligne 1 (sur
une feuille 1), ou l'appartenance à un groupe est validée par une croix qui
croise ligne est colonne?
==> Cyril coché en groupe 3 sur la feuille 1, se retrouve dans une liste
avec tous ceux du groupe 3 dans la feuille 2 automatiquement(1 nom pas
cellule)

Peut-etre est-ce cela que vous appelez "tableau croisé dynamique"... J'ai
cherché mais je ne vois pas bien comment m'y prendre.

Merci

Emma





Avatar
Emma
Bonjour FFO et désolée de n'avoir pas répondu avant...

J'ai beau essayer de mettre ton code dans un module VBA, la fonction ne
marche pas.

Je ne m'y prends peut etre pas bien:
- j'ouvre VBE
- Je cole le code dans un module que je crée
- Enfin, j'essaie la fonction

... et rien ne se passe.

Que se passe t-il?
Avatar
Philippe.R
Bonjour Emma,
C'est dans le module de la feuille concernée qu'il faut coller ce code
(procédure événementielle)
Etant sur la feuille, tu clique droit sur l'onglet, tu choisis "visualiser
le code" et tu colles le code.
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
"Emma" a écrit dans le message de
news:%23KAv$
Bonjour FFO et désolée de n'avoir pas répondu avant...

J'ai beau essayer de mettre ton code dans un module VBA, la fonction ne
marche pas.

Je ne m'y prends peut etre pas bien:
- j'ouvre VBE
- Je cole le code dans un module que je crée
- Enfin, j'essaie la fonction

... et rien ne se passe.

Que se passe t-il?




Avatar
FFO
Rebonjour Emma

Sur ce lien mon fichier avec l'ensemble décrit

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

Effaces onglet Feuil2 le résultat sans toucher la ligne 1 portant le nom des
colonnes
Actives la macro1 et retournes Onglet Feuil2 pour en apprécier le résultat
Onglet Feuil1 enlèves les croix et choisi de les mettre ou tu veux en double
cliquant sur les cellules choisies et aprés avoir effacer le résultat Onglet
Feuil2 relances la macro et reconsultes le nouveau résultat Onglet Feuil2

Dis moi ce que tu en penses



Bonjour FFO et désolée de n'avoir pas répondu avant...

J'ai beau essayer de mettre ton code dans un module VBA, la fonction ne
marche pas.

Je ne m'y prends peut etre pas bien:
- j'ouvre VBE
- Je cole le code dans un module que je crée
- Enfin, j'essaie la fonction

.... et rien ne se passe.

Que se passe t-il?





Avatar
Emma
Ton travail correspond exactement à mon attente! Merci beaucoup!

A bientôt j'espère.

Emma