Excel : supprimer des lignes/colonnes

Jamdude Messages postés 3 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.
Configuration: Windows XP
Firefox 2.0.0.14

2 réponses

  1. chtilou Messages postés 1704 Statut Membre 523
     
    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.
    1
  2. pascal-
     
    ç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.
    0