Excel : supprimer des lignes/colonnes
Jamdude
Messages postés
3
Statut
Membre
-
chtilou Messages postés 1704 Statut Membre -
chtilou Messages postés 1704 Statut Membre -
Bonjour,
Je vous explique ce que je souhaite faire :
Je voudrais que quand la cellule G1 prends une certaine valeur (disons 2 par exemple : c'est ici un nombre d'étage), le groupement de lignes correspondant aux étages 4, 5 etc... soit supprimé. Pour cela j'ai appelé le groupement de lignes "Etage2" (ligne 10 à 14) "Etage3" (lignes 15 à 19) etc.. et je pensais créer une macro qui supprime automatiquement ces lignes suivant la valeur de G1.
Et c'est à ce point que j'ai besoin d'aide ;-)
Ma première question est déjà : est-ce qu'il y a forcément besoin d'une macro pour faire ce que je souhaite faire??
Et si oui, avez-vous des idées??
Merci d'avance pour vos interventions et n'hésitez pas à poser des questions si je n'ai pas été clair sur certains points.
Je vous explique ce que je souhaite faire :
Je voudrais que quand la cellule G1 prends une certaine valeur (disons 2 par exemple : c'est ici un nombre d'étage), le groupement de lignes correspondant aux étages 4, 5 etc... soit supprimé. Pour cela j'ai appelé le groupement de lignes "Etage2" (ligne 10 à 14) "Etage3" (lignes 15 à 19) etc.. et je pensais créer une macro qui supprime automatiquement ces lignes suivant la valeur de G1.
Et c'est à ce point que j'ai besoin d'aide ;-)
Ma première question est déjà : est-ce qu'il y a forcément besoin d'une macro pour faire ce que je souhaite faire??
Et si oui, avez-vous des idées??
Merci d'avance pour vos interventions et n'hésitez pas à poser des questions si je n'ai pas été clair sur certains points.
Configuration: Windows XP Firefox 2.0.0.14
2 réponses
-
Bonsoir,
je me suis servi de ton problème comme exercice pratique sur VBA. ;-)
Je te propose ceci:
Sub SupprimerSi()
'
'soyez indulgent je débute en VBA
'Chtilou
'
'supprime les étages supérieurs à G1
a = Range("G1")
If a = 1 Then
'supprime les étages 2,3 et 4
Rows("10:24").Select
Selection.Delete Shift:=xlUp
End If
If a = 2 Then
'supprime les étages 3 et 4
Rows("15:24").Select
Selection.Delete Shift:=xlUp
End If
If a = 3 Then
'supprime le 4éme étage
Rows("20:24").Select
Selection.Delete Shift:=xlUp
End If
End Sub
Il doit certainement exister plus simple.
A votre écoute. -
ça dépend de ce que tu appelle supprimer.
pour supprimer vraiment, je ne vois qu'une macro, oui.
Si tu veux juste vider l'étage, tu peux les remplir avec des tests
=si(G1 = 2 ; "" ; ...)
où ... contient la valeur (ou la formule) de la case quand tu ne veux pas supprimer. Dans ce cas, pas besoin de macro.