IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Worksheet_Change et " If "


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut Worksheet_Change et " If "
    Bonjour

    J'ai 2 soucis sur une petite macro. Celle ci s'éxécute mais a tous les coups le message d'erreur : La methode select de la classe range a echoué.


    D'autre part le " CellChange " ayant une liste de validation d'une dizaine de
    choix, en utilisant " If " qui ne reconnait que les 7 premiers, je suis bloqué pour les autres. Donc est ce qu'il y aurait un autre moyen d'ecrire cette macro?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellChange As Range
     
    Set CellChange = Range("C6")
    If Not Application.Intersect(CellChange, Range(Target.Address)) _
    Is Nothing Then
     
     
    If CellChange = "COULISSANT 2 VTX" Then
     
        Sheets("C2").Select
        Range("C8").Select
     
        Else
     
    If CellChange = "COULISSANT 4 VTX" Then
     
        Sheets("C4").Select
        Range("C8").Select
     
        Else
    If CellChange = "COULISSANT 4 VTX 2RAILS" Then
     
        Sheets("C42R").Select
        Range("C8").Select
     
        Else
    If CellChange = "COULISSANT 6 VTX 3RAILS" Then
     
        Sheets("C6").Select
        Range("C8").Select
     
        Else
     
        Range("C8").Select
     
        End If
        End If
        End If
        End If
        End If
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Voici une solution mais garde en mémoire que les "select" doivent être évités autant que possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellChange As Range
        Set CellChange = Range("C6")
        If Not Application.Intersect(CellChange, Range(Target.Address)) Is Nothing Then
            Select Case CellChange
            Case "COULISSANT 2 VTX"
                With Sheets("C2")
                    .Select
                    .Range("C8").Select
                End With
            Case "COULISSANT 4 VTX"
                With Sheets("C4")
                    .Select
                    .Range("C8").Select
                End With
            Case "COULISSANT 4 VTX 2RAILS"
                With Sheets("C42R")
                    .Select
                    .Range("C8").Select
                End With
            Case "COULISSANT 6 VTX 3RAILS"
                With Sheets("C6")
                    .Select
                    .Range("C8").Select
                End With
            Case Else
                Range("C8").Activate
            End Select
        End If
    End Sub
    Cordialement.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut re
    Merci j' essayerai cette solution.....j'ai bien noté ton conseil

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo