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

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

  • Essai.xlsm
    19.1 KB · Affichages: 27

M12

XLDnaute Accro
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
 

YANOU

XLDnaute Junior
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
 

YANOU

XLDnaute Junior
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

  • Dossier en cours de modification.xlsm
    85.5 KB · Affichages: 18

Discussions similaires

Réponses
2
Affichages
403

Statistiques des forums

Discussions
312 097
Messages
2 085 261
Membres
102 844
dernier inscrit
atori2