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

Excel Discussion :

Activation d'une cellule selon une liste de choix


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Activation d'une cellule selon une liste de choix
    Bonjour,
    Je n'arrive pas à trouver la solution, j'ai tellement besoin de votre aide. Voici mon problème :
    Dans la cellule B6 , j'ai une liste de choix(liste déroulante) ayant 1 et 2, et on ne peut saisir dans la cellule H6 que si c'est 1, si l'utilisateur choit 2 ,H6 doit être désactivée .Ou si on choit 1, H6 va apparaître ,sinon H6 est cachée. Je ne sais pas si on peut écrire un macro pour résoudre ce problème.
    Voilà, j'espère que c'est bien clair , donc aidez moi, s'il vous plait, car c'est un peu urgent !! Merci beaucoup!

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Oui il y a des solutions mais pas celle de masquer H6, on ne peut pas "cacher" une seule cellule.

    Un exemple de code à mettre dans le module de la feuille concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If [B6] = 1 Then Exit Sub
    For Each Target In Selection
        If Target.Address = "$H$6" Then [H5].Select
    Next
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Ah oui, j'ai oublié, bien sur qu'on ne peut pas cacher une cellule, je veux que la colonne H est cachée tout en entier. J'ai essayé avec ces codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub Acti()
    Sheets("SAISIE").Select
    If Cells(6, 2) = 1 Then
        ActiveSheet.[H6].EntireColumn.Hidden = False
    Else
        ActiveSheet.[H6].EntireColumn.Hidden = True
    End If
    End Sub
    Mais ça marche juste qu'une fois car j'ai pas utilisé un bouton Commande .Est ce quelqu'un peut corriger mes codes pour que ça change chaque fois qu'on change la valeur de B6 ??Merci beaucoup !

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Points : 306
    Points
    306
    Par défaut
    Bonjour

    Autre solution : empêcher d'écrire dans H6 si B6 = 2

    en H6 : DONNEES ==> Validation

    Autoriser : Personnalisée
    Formule : =B6=1

    Puis aller dans l'onglet "Alerte d'erreur" pour mettre un message ; par exemple :

    "La cellule B6 doit être égale à 1"

    Amicalement
    Nad

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Merci Nad-Dan, mais si la colonne H peut être cachée, ce sera mieux !

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Une procédure événementielle à mettre dans le module de la feuille (pas dans un module standard
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        'si changement d'une seule cellule on vérifie si il s'agit de la cellule B6
        If Target.Count = 1 And Target.Address = "$B$6" Then
            'si la cellule B6 = 1 on affiche la colonne H sinon on la masque
            If Target.Value = 1 Then
                Columns(8).Hidden = False
            Else
                Columns(8).Hidden = True
            End If
        Else
            'si changement de plusieurs cellules en même temps on vérifie si la cellule B6 en fait partie
            For Each Target In Selection
                If Target.Address = "$B$6" Then
                    'si la cellule B6 = 1 on affiche la colonne H sinon on la masque
                    If Target.Value = 1 Then
                        Columns(8).Hidden = False
                    Else
                        Columns(8).Hidden = True
                    End If
                    Exit For
                End If
            Next
        End If
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup fring, ca marche très bien !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [XL-2003] Recopier une ligne selon une valeur d'une cellule donnée.
    Par bokgkik dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2011, 19h00
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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