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 :

Private Sub Worksheet_Change [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut Private Sub Worksheet_Change
    Bonjour

    Mon code suivant affecte une valeur a "O6" et "O15" après le changement de la cellule "B2"
    Je souhaite remplacer Range("O6") et Range("O15") par une variable
    Svp est ce que mon code et correcte et bien rédiger
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim note As String
        note = Range("B2")
     
        If Target.Address = Range("B2").Address Then
     
            Select Case note
                Case Is = "A"
                    Range("O6").Value = 1
                    Range("O15").Value = 1
                Case Is = "B"
                    Range("O6").Value = 2
                    Range("O15").Value = 2
                Case Is = "C"
                    Range("O6").Value = 3
                    Range("O15").Value = 3
            End Select
     
        End If
    Range("B6").Select
    End Sub
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    Comme tu change des valeurs dans la feuille

    avec la macro Private Sub Worksheet_Change

    il conviendrait d'ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Application.EnableEvents = False
    en début de code

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Application.EnableEvents = true
    en fin de code

    pour éviter que la macro boucle sur elle même.

    Autrement ça me semble correct.

    Bonne journée.

  3. #3
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    Merci pour la réponse
    Mais comment remplacer Range("O6") et Range("O15") par une variable

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Quelle est l'impérieuse nécessité de remplacer ces deux cellules par une variable ?
    Si ce n'est que pour éviter de te répéter, il suffit de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim toto as integer
        Select Case note
                Case Is = "A"
                   toto = 1 = 1
                    Range("O15").Value = 1
                Case Is = "B"
                    toto = 2
                Case Is = "C"
                   toto = 3
            End Select
                    Range("O6").Value = toto
                    Range("O15").Value = toto
    ou mieux encore, si tu veux t'amuser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim toto as integer
    toto = asc(note) - 64
    Range("O6").value = toto
    Range("O15").value = toto

  5. #5
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Par défaut
    Merci beaucoup


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

Discussions similaires

  1. [XL-2010] Private Sub Worksheet_Change qui boucle
    Par jauffray.delteil dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2013, 15h47
  2. [Toutes versions] Private Sub Worksheet_Change(ByVal Target As Range) et protection
    Par Giantrick dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2013, 10h21
  3. probleme avec Private Sub Worksheet_Change
    Par tibiscuit dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 27/06/2011, 01h21
  4. [XL-2007] petit soucis avec un Private Sub Worksheet_Change(ByVal Target As Range)
    Par dris974 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/03/2011, 12h57

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