XL 2010 [Résolu]Supprimer ligne en fonction valeur cellule

  • Initiateur de la discussion Initiateur de la discussion YANOU
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YANOU

XLDnaute Junior
Bonjour à tous.
J'aurai voulu supprimer des lignes, sur différentes feuilles, en fonction d'une valeur de cellule (menu déroulant)sur une feuille "Questionnaire" (Explications + précises sur la 2ième feuille de la pièce jointe).
J'ai regardé pas mal de messages à ce sujet, mais ne connaissant pas le VBA, je n'arrive pas à avancer.
Merci pour votre aide.
 

Pièces jointes

Bonjour

A mettre dans la feuille Questionnaire
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B3")) Is Nothing Then
  If Range("B3") = "Hors DESP - Fabrication" Then
    Sheets("SOM Hors DESP").Activate
    Sheets("SOM Hors DESP").Rows("20:21").Delete
    Sheets("SOM Hors DESP").Range("B20") = "'=>"
    Sheets("SOM Hors DESP").Range("B20").HorizontalAlignment = xlRight
  End If
  If Range("B3") = "DESP - Fabrication" Then
    Sheets("SOM DESP").Activate
    Sheets("SOM DESP").Rows("20:21").Delete
    Sheets("SOM DESP").Range("B20") = "'=>"
    Sheets("SOM DESP").Range("B20").HorizontalAlignment = xlRight
  End If
End If
Sheets("Questionnaire").Activate
End Sub
 
Bonjour M12 et merci pour votre aide !
1ier problème:
ma feuille contient d'autres macros et votre macro (que je viens de coller en fin de code) me renvoi:
=> Erreur de compilation / Nom ambigu détecté: Workshett-Change
Certainement parce-que je ne vous ai pas qu'il y avait d'autres macros...
Le code complet :
Code:
Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target.Address = "$B$3" Then

  Application.ScreenUpdating = False

  Select Case Target.Value

  Case "DESP - Fabrication"

  Sheets("Descriptif réparation").Visible = False

  Sheets("Descriptif modification").Visible = False

  Sheets("Décla Conf DESP").Visible = True

  Sheets("SOM Hors DESP").Visible = False

  Sheets("PV Hors DESP").Visible = False

  Sheets("SOM DESP").Visible = True

  Sheets("PV DESP").Visible = True

  Sheets("Notice").Visible = True

  Sheets("Décla Conf DESP").Visible = True

  Case "DESP - Réparation"

  Sheets("Descriptif réparation").Visible = True

  Sheets("Descriptif modification").Visible = False

  Sheets("Décla Conf DESP").Visible = False

  Sheets("SOM Hors DESP").Visible = False

  Sheets("PV Hors DESP").Visible = False

  Sheets("SOM DESP").Visible = True

  Sheets("PV DESP").Visible = True

  Sheets("Notice").Visible = True

  Sheets("Décla Conf DESP").Visible = True

  Case "DESP - Modification"

  Sheets("Descriptif réparation").Visible = False

  Sheets("Descriptif modification").Visible = True

  Sheets("Décla Conf DESP").Visible = False

  Sheets("SOM Hors DESP").Visible = False

  Sheets("PV Hors DESP").Visible = False

  Sheets("SOM DESP").Visible = True

  Sheets("PV DESP").Visible = True

  Sheets("Notice").Visible = True

  Sheets("Décla Conf DESP").Visible = True

  Case "DESP - Composant"

  Sheets("Descriptif réparation").Visible = False

  Sheets("Descriptif modification").Visible = False

  Sheets("Décla Conf DESP").Visible = True

  Sheets("SOM Hors DESP").Visible = False

  Sheets("PV Hors DESP").Visible = False

  Sheets("SOM DESP").Visible = True

  Sheets("PV DESP").Visible = True

  Sheets("Notice").Visible = True

  Sheets("Décla Conf DESP").Visible = True

  Case "Hors DESP - Fabrication"

  Sheets("Descriptif réparation").Visible = False

  Sheets("Descriptif modification").Visible = False

  Sheets("Décla Conf DESP").Visible = True

  Sheets("SOM DESP").Visible = False

  Sheets("PV DESP").Visible = False

  Sheets("SOM Hors DESP").Visible = True

  Sheets("PV Hors DESP").Visible = True

  Sheets("Analyse").Visible = False

  Sheets("Notice").Visible = False

  Sheets("Décla Conf DESP").Visible = False

  Case "Hors DESP - Réparation"

  Sheets("Descriptif réparation").Visible = True

  Sheets("Descriptif modification").Visible = False

  Sheets("Décla Conf DESP").Visible = False

  Sheets("SOM DESP").Visible = False

  Sheets("PV DESP").Visible = False

  Sheets("SOM Hors DESP").Visible = True

  Sheets("PV Hors DESP").Visible = True

  Case "Hors DESP - Modification"

  Sheets("Descriptif réparation").Visible = False

  Sheets("Descriptif modification").Visible = True

  Sheets("Décla Conf DESP").Visible = False

  Sheets("SOM DESP").Visible = False

  Sheets("PV DESP").Visible = False

  Sheets("SOM Hors DESP").Visible = True

  Sheets("PV Hors DESP").Visible = True




  End Select

End If

End Sub




Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("E20:E24")) Is Nothing Then

Range("F20") = Sheets("Adresse").Range("E" & Target.Row)

Else

If Not Intersect(Target, [E3]) Is Nothing And Target.Count = 1 Then Exit Sub

val2 = [E3].Value

End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)




If Not Application.Intersect(Target, Range("B3")) Is Nothing Then

  If Range("B3") = "Hors DESP - Fabrication" Then

  Sheets("SOM Hors DESP").Activate

  Sheets("SOM Hors DESP").Rows("20:21").Delete

  Sheets("SOM Hors DESP").Range("B20") = "'=>"

  Sheets("SOM Hors DESP").Range("B20").HorizontalAlignment = xlRight

  End If

  If Range("B3") = "DESP - Fabrication" Then

  Sheets("SOM DESP").Activate

  Sheets("SOM DESP").Rows("20:21").Delete

  Sheets("SOM DESP").Range("B20") = "'=>"

  Sheets("SOM DESP").Range("B20").HorizontalAlignment = xlRight

  End If

End If

Sheets("Questionnaire").Activate

End Sub
2ième problème:
Si je rechange de choix dans la cellule B3 de mon questionnaire (en dehors des 2 cas ou les lignes 20-21 doivent être supprimées) les 2 lignes 20-21 ne réapparaissent pas (dans les 5 autre cas).

Merci pour votre aide
 
Re,
sur feuille "Questionnaire"
- la 1ière macro me permet de masquer ou afficher des feuilles en fonction de mon choix en cellule B3
- la 2ième macro me permet de faire apparaitre des adresses automatiquement dans la cellule F20 en cliquant sur les cellules E20 à E24 (en allant chercher sur la feuille "Adresse").
J'ai modifié les feuilles "SOM DESP" et "SOM Hors DESP" pour ne plus avoir à s'occuper de "=>" à rajouter en B20 (un détail...), du coup "juste" masquer/Afficher les lignes 20-21.
Merci pour votre aide.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
455
Réponses
4
Affichages
439
Retour