effacer contenu d'une colonnes en fonction de son intitulé.
11 réponses
david anceau
Bonjour,
Je souhaite pouvoir apr=E8s avoir fait un choix dans un menu d=E9roulant,
effacer le contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donn=E9s) ne
contenant pas en A1 "TOTO" est effac=E9, puis masqu=E9.
Apr=E8s des recherches infructueuse, je poste dans ce groupe.
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
"david anceau" nous a écrit
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant,
effacer le contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donnés) ne
contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un
mais :-() ton tableau doit être organisé différemment.
Il faut transposer ton tableau : mettre tes données en colonnes. Puis
activer le filtre, et masquer les lignes que tu souhaites en fonction du
filtrage.
--
Brunos
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
david anceau
On 4 fév, 11:50, "Brunos" wrote:
"david anceau" nous a écrit
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant , effacerle contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il s'agit d'une sorte de matrice de saisie pour différentes personnes)
On 4 fév, 11:50, "Brunos" <pasdem...@moi.mezig> wrote:
"david anceau" nous a écrit
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant ,
effacerle contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donnés) ne
contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un
mais :-() ton tableau doit être organisé différemment.
Il faut transposer ton tableau : mettre tes données en colonnes. Puis
activer le filtre, et masquer les lignes que tu souhaites en fonction du
filtrage.
--
Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il
s'agit d'une sorte de matrice de saisie pour différentes personnes)
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant , effacerle contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il s'agit d'une sorte de matrice de saisie pour différentes personnes)
JB
Bonjour,
http://cjoint.com/?cemtO75VCa
JB http://boisgontierjacques.free.fr
On 4 fév, 11:28, david anceau wrote:
Bonjour, Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Merci pour votre aide précieuse... ;-) David
Bonjour,
http://cjoint.com/?cemtO75VCa
JB
http://boisgontierjacques.free.fr
On 4 fév, 11:28, david anceau <d.anc...@gmail.com> wrote:
Bonjour,
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant,
effacer le contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donnés) ne
contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Bonjour, Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Merci pour votre aide précieuse... ;-) David
Daniel.C
Bonjour. Admettons que le menu déroulant soit en A1 (Validation de données), mets dans le code de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range If Target.Address <> "$A$1" Then Exit Sub [Plage].Columns.Hidden = False For Each c In Intersect([Plage], Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
"Plage" correspond à ton range de données. Cordialement. Daniel "david anceau" a écrit dans le message de news:
Bonjour, Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Merci pour votre aide précieuse... ;-) David
Bonjour.
Admettons que le menu déroulant soit en A1 (Validation de données), mets
dans le code de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Address <> "$A$1" Then Exit Sub
[Plage].Columns.Hidden = False
For Each c In Intersect([Plage], Rows(1))
If c <> Target Then
c.EntireColumn.ClearContents
c.EntireColumn.Hidden = True
End If
Next c
End Sub
"Plage" correspond à ton range de données.
Cordialement.
Daniel
"david anceau" <d.anceau@gmail.com> a écrit dans le message de news:
57fc3904-1aa0-4c98-aa51-ecf053beeeab@1g2000hsl.googlegroups.com...
Bonjour,
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant,
effacer le contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donnés) ne
contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Bonjour. Admettons que le menu déroulant soit en A1 (Validation de données), mets dans le code de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range If Target.Address <> "$A$1" Then Exit Sub [Plage].Columns.Hidden = False For Each c In Intersect([Plage], Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
"Plage" correspond à ton range de données. Cordialement. Daniel "david anceau" a écrit dans le message de news:
Bonjour, Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Après des recherches infructueuse, je poste dans ce groupe.
Merci pour votre aide précieuse... ;-) David
Brunos
On 4 fév, 11:50, "Brunos" wrote:
"david anceau" nous a écrit
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit. Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il s'agit d'une sorte de matrice de saisie pour différentes personnes)
Dans ce cas le masquage ne me semble possible qu'en VBA. Voici comment je ferais:
1. Menu déroulant: Avec Validation/Données. Le menu peut avoir une liste fixe, ou la liste peut être alimentée par une plage nommée du classeur. 2. Masquage des colonnes en VBA - déclencher l'action quand la valeur du filtre change (évènement Worksheet_Change) - supprimer le précédent filtre (Cells.EntireColumn.Hidden = False) - passer en revue les colonnes (boucle for each C in Selection.Columns), tester la présence du filtre et masquer les colonnes choisies (Hidden = True).
Bon courage! -- Brunos
On 4 fév, 11:50, "Brunos" <pasdem...@moi.mezig> wrote:
"david anceau" nous a écrit
Je souhaite pouvoir après avoir fait un choix dans un menu
déroulant,
effacer le contenu, puis masquer toutes les colonnes qui ne
contiennent pas le nom choisit.
Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le
contenu de toutes les colonnes (contenu dans un "range" donnés) ne
contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a
un
mais :-() ton tableau doit être organisé différemment.
Il faut transposer ton tableau : mettre tes données en colonnes. Puis
activer le filtre, et masquer les lignes que tu souhaites en fonction
du
filtrage.
--
Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il
s'agit d'une sorte de matrice de saisie pour différentes personnes)
Dans ce cas le masquage ne me semble possible qu'en VBA.
Voici comment je ferais:
1. Menu déroulant:
Avec Validation/Données. Le menu peut avoir une liste fixe, ou la liste
peut être alimentée par une plage nommée du classeur.
2. Masquage des colonnes en VBA
- déclencher l'action quand la valeur du filtre change (évènement
Worksheet_Change)
- supprimer le précédent filtre (Cells.EntireColumn.Hidden = False)
- passer en revue les colonnes (boucle for each C in Selection.Columns),
tester la présence du filtre et masquer les colonnes choisies (Hidden =
True).
Je souhaite pouvoir après avoir fait un choix dans un menu déroulant, effacer le contenu, puis masquer toutes les colonnes qui ne contiennent pas le nom choisit. Exemple : Si dans mon menu deroulant je choisit "TOTO" alors le contenu de toutes les colonnes (contenu dans un "range" donnés) ne contenant pas en A1 "TOTO" est effacé, puis masqué.
Tu peux faire ça facilement avec le filtre automatique, MAIS (il y a un mais :-() ton tableau doit être organisé différemment. Il faut transposer ton tableau : mettre tes données en colonnes. Puis activer le filtre, et masquer les lignes que tu souhaites en fonction du filtrage. -- Brunos
Merci Bruno, malheureusement ce fichier n'est pas modifiable...(il s'agit d'une sorte de matrice de saisie pour différentes personnes)
Dans ce cas le masquage ne me semble possible qu'en VBA. Voici comment je ferais:
1. Menu déroulant: Avec Validation/Données. Le menu peut avoir une liste fixe, ou la liste peut être alimentée par une plage nommée du classeur. 2. Masquage des colonnes en VBA - déclencher l'action quand la valeur du filtre change (évènement Worksheet_Change) - supprimer le précédent filtre (Cells.EntireColumn.Hidden = False) - passer en revue les colonnes (boucle for each C in Selection.Columns), tester la présence du filtre et masquer les colonnes choisies (Hidden = True).
Le code du bouton de validation dans lequel je souhaite exécuter le code de Daniel C
Private Sub Valider_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If End Sub
Private Sub efface(ByVal Target As Range) Dim c As Range If Target.Address <> "HER" Then Exit Sub Range("A6:N6").Columns.Hidden = False For Each c In Intersect(Range("A6:N6"), Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
Le code du bouton de validation dans lequel je souhaite exécuter le
code de Daniel C
Private Sub Valider_Click()
If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?",
vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code
de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If
End Sub
Private Sub efface(ByVal Target As Range)
Dim c As Range
If Target.Address <> "HER" Then Exit Sub
Range("A6:N6").Columns.Hidden = False
For Each c In Intersect(Range("A6:N6"), Rows(1))
If c <> Target Then
c.EntireColumn.ClearContents
c.EntireColumn.Hidden = True
End If
Next c
End Sub
Le code du bouton de validation dans lequel je souhaite exécuter le code de Daniel C
Private Sub Valider_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If End Sub
Private Sub efface(ByVal Target As Range) Dim c As Range If Target.Address <> "HER" Then Exit Sub Range("A6:N6").Columns.Hidden = False For Each c In Intersect(Range("A6:N6"), Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
Merci d'avance
david anceau
Pardon, lire
If Target.Address <> comboBox.value Then Exit Sub au lieu de If Target.Address <> "HER" Then Exit Sub
Pardon,
lire
If Target.Address <> comboBox.value Then Exit Sub
au lieu de
If Target.Address <> "HER" Then Exit Sub
If Target.Address <> comboBox.value Then Exit Sub au lieu de If Target.Address <> "HER" Then Exit Sub
Daniel.C
Private Sub Valider_Click_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", _ vbOKCancel) = vbOK Then Dim c As Range [Plage].Columns.Hidden = False For Each c In Intersect([Plage], Rows(1)) If c <> Me.ComboBox1.Value Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End If
End Sub
Daniel "david anceau" a écrit dans le message de news:
Le code du bouton de validation dans lequel je souhaite exécuter le code de Daniel C
Private Sub Valider_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If End Sub
Private Sub efface(ByVal Target As Range) Dim c As Range If Target.Address <> "HER" Then Exit Sub Range("A6:N6").Columns.Hidden = False For Each c In Intersect(Range("A6:N6"), Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
Merci d'avance
Private Sub Valider_Click_Click()
If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", _
vbOKCancel) = vbOK Then
Dim c As Range
[Plage].Columns.Hidden = False
For Each c In Intersect([Plage], Rows(1))
If c <> Me.ComboBox1.Value Then
c.EntireColumn.ClearContents
c.EntireColumn.Hidden = True
End If
Next c
End If
End Sub
Daniel
"david anceau" <d.anceau@gmail.com> a écrit dans le message de news:
863f24b0-f0f0-44b6-99e6-84cc825ccaeb@j20g2000hsi.googlegroups.com...
Merci à tous...
Cependant je bloque encore ;-)
Le code du bouton de validation dans lequel je souhaite exécuter le
code de Daniel C
Private Sub Valider_Click()
If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?",
vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code
de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If
End Sub
Private Sub efface(ByVal Target As Range)
Dim c As Range
If Target.Address <> "HER" Then Exit Sub
Range("A6:N6").Columns.Hidden = False
For Each c In Intersect(Range("A6:N6"), Rows(1))
If c <> Target Then
c.EntireColumn.ClearContents
c.EntireColumn.Hidden = True
End If
Next c
End Sub
Private Sub Valider_Click_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", _ vbOKCancel) = vbOK Then Dim c As Range [Plage].Columns.Hidden = False For Each c In Intersect([Plage], Rows(1)) If c <> Me.ComboBox1.Value Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End If
End Sub
Daniel "david anceau" a écrit dans le message de news:
Le code du bouton de validation dans lequel je souhaite exécuter le code de Daniel C
Private Sub Valider_Click() If MsgBox("vous avez choisi : " & ComboBox1.Value & " êtes vous sûr?", vbOKCancel) = vbOK Then --> c'est là que je voudrai déclencher le code de Sub efface... Mais avec un "call" cela ne fonctionne pas...
End If End Sub
Private Sub efface(ByVal Target As Range) Dim c As Range If Target.Address <> "HER" Then Exit Sub Range("A6:N6").Columns.Hidden = False For Each c In Intersect(Range("A6:N6"), Rows(1)) If c <> Target Then c.EntireColumn.ClearContents c.EntireColumn.Hidden = True End If Next c End Sub
Merci d'avance
david anceau
Merci Daniel, C'est exactement ce que je souhaite, le code est intégré dans mon bouton de validation. J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la journée... Je suis bien meilleur en PHP ;-))
Merci Daniel,
C'est exactement ce que je souhaite, le code est intégré dans mon
bouton de validation.
J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la
journée... Je suis bien meilleur en PHP ;-))
Merci Daniel, C'est exactement ce que je souhaite, le code est intégré dans mon bouton de validation. J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la journée... Je suis bien meilleur en PHP ;-))
Daniel.C
J'ai défini avec le nom "Plage" la plage de données à l'intérieur les colonnes sont masquées. Ou tu fais pareil, ou tu changes le nom, ou tu rentres l'adresse de la plage : For Each c In Intersect(Range("C:J"), Rows(1)) Daniel "david anceau" a écrit dans le message de news:
Merci Daniel, C'est exactement ce que je souhaite, le code est intégré dans mon bouton de validation. J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la journée... Je suis bien meilleur en PHP ;-))
J'ai défini avec le nom "Plage" la plage de données à l'intérieur les
colonnes sont masquées.
Ou tu fais pareil, ou tu changes le nom, ou tu rentres l'adresse de la plage
:
For Each c In Intersect(Range("C:J"), Rows(1))
Daniel
"david anceau" <d.anceau@gmail.com> a écrit dans le message de news:
2f66c980-746e-4132-a55b-eefdfe8ead2c@i29g2000prf.googlegroups.com...
Merci Daniel,
C'est exactement ce que je souhaite, le code est intégré dans mon
bouton de validation.
J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la
journée... Je suis bien meilleur en PHP ;-))
J'ai défini avec le nom "Plage" la plage de données à l'intérieur les colonnes sont masquées. Ou tu fais pareil, ou tu changes le nom, ou tu rentres l'adresse de la plage : For Each c In Intersect(Range("C:J"), Rows(1)) Daniel "david anceau" a écrit dans le message de news:
Merci Daniel, C'est exactement ce que je souhaite, le code est intégré dans mon bouton de validation. J'ai encore une erreur 424 sur la ligne
For Each c In Intersect([Plage], Rows(1))
Une idée ? (je sais je vais finir par m'attribuer le boulet d'or de la journée... Je suis bien meilleur en PHP ;-))