Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

remplacer formule If par CODE VBA

  • Initiateur de la discussion Initiateur de la discussion Ilino
  • 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 !

Ilino

XLDnaute Barbatruc
Bonsoir forum
J’ai les lignes suivantes :
C38 c52 c66 c80 c94 dans ces cellules j’ai une liste déroulante similaire, je souhaiterai masquer les lignes suivantes( en VBA) sous conditions :
1.si C38= Pylône ( Coupure ) ou Pylône ( Piqûre) ou Poteau masquer les lignes 828 au 847
2.si C52= Pylône ( Coupure ) ou Pylône ( Piqûre) ou Poteau masquer les lignes 824-827 et 832-847
3.si C66= Pylône ( Coupure ) ou Pylône ( Piqûre) ou Poteau masquer les lignes 824-831 et 836-847
4.si C80= Pylône ( Coupure ) ou Pylône ( Piqûre) ou Poteau masquer les lignes 824-835 et 840-847
5.si C94= Pylône ( Coupure ) ou Pylône ( Piqûre) ou Poteau masquer les lignes 824-843
GRAZIE
 
Re : remplacer formule If par CODE VBA

Bonjour à tous,

Un début de code :

VB:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$38" Then
If Target.Value = "Pylône ( Coupure )" Or Target.Value = "Pylône ( Piqûre)" Or Target.Value = "Poteau" Then Rows("828:847").EntireRow.Hidden = True
End If
End Sub


A+ à tous
 
Re : remplacer formule If par CODE VBA


bonsoir JCGL
GRAZIE pour la réponse, donc si bien compris je dois faire la même chose pour l’ensemble de C?
a+
 
Re : remplacer formule If par CODE VBA

Bonjour à tous,

Oui, tu dois faire la même chose pour toutes tes 5 cellules en C.

A+ à tous

Edition : Dans le module de la feuille concernée :

VB:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
    Range("A824:A847").EntireRow.Hidden = False
    If Target.Address = "$C$38" Then
        If Target.Value <> "Autre" Then
            Range("A828:A847").EntireRow.Hidden = True
        Else
            Range("A824:A847").EntireRow.Hidden = False
        End If
    End If
    If Target.Address = "$C$52" Then
        If Target.Value <> "Autre" Then
            Range("A824:A827,A832:A847").EntireRow.Hidden = True
        Else
            Range("A824:A847").EntireRow.Hidden = False
        End If
    End If
    If Target.Address = "$C$66" Then
        If Target.Value <> "Autre" Then
            Range("A824:A831,A836:A847").EntireRow.Hidden = True
        Else
            Range("A824:A847").EntireRow.Hidden = False
        End If
    End If
    If Target.Address = "$C$80" Then
        If Target.Value <> "Autre" Then
            Range("A824:A835,A840:A847").EntireRow.Hidden = True
        Else
            Range("A824:A847").EntireRow.Hidden = False
        End If
    End If
    If Target.Address = "$C$94" Then
        If Target.Value <> "Autre" Then
            Range("A824:A843").EntireRow.Hidden = True
        Else
            Range("A824:A847").EntireRow.Hidden = False
        End If
    End If
End Sub

A+ à tous
 
Dernière édition:
Re : remplacer formule If par CODE VBA

Bonsoir MAITRE
J'ai ajouté a ton code
Code:
If Not Intersect(Target, [C38,C52,C66,C80,C94]) Is Nothing Then
        Application.ScreenUpdating = False
parce-que dans mon programme j'ai plusieurs code dans le meme Private Sub Worksheet_change
est ce que c'est faisable ??
GRAZIE
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…