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 :

problème selection change VBA [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Commercial
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut problème selection change VBA
    Bonjour,

    encore une fois, je fais appel aux sauveurs qu'il y a sur ce forum

    Voila mon souci, j'ai un code dans le wroksheet avec 2 private sub selectionchange. quand j'en met un seul, ça fonctionne mais des que je mets les 2, j'ai "erreur de compilation, nom ambigu"

    Voici le code:

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B3:B65556")) Is Nothing Then
    UserForm1.TextBox2 = ActiveCell.Value
    UserForm1.TextBox1 = ActiveCell.Offset(0, 14).Value
    UserForm1.TextBox3 = ActiveCell.Offset(0, 1).Value
    UserForm1.TextBox4 = ActiveCell.Offset(0, 2).Value
    UserForm1.TextBox5 = ActiveCell.Offset(0, 3).Value
    UserForm1.TextBox6 = ActiveCell.Offset(0, 6).Value
    UserForm1.TextBox7 = ActiveCell.Offset(0, 5).Value
    UserForm1.TextBox8 = ActiveCell.Offset(0, 4).Value
     
    UserForm1.Show
     
    End If
    End Sub
     
     
    Option Explicit
     
     
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim n&, rg As Range
        On Error GoTo fin
        Application.ScreenUpdating = False
        If Target.Column = 10 Then
            With Application.WorksheetFunction
                If .CountIf(ActiveSheet.Columns(Target.Column), Target.Value) > 1 Then
                    Set rg = ActiveSheet.Columns(10).Find( _
                        What:=Target.Value, After:=Target)
                    rg.Clear
                End If
            End With
        End If
    fin:
        Application.ScreenUpdating = True
    End Sub
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Not Application.Intersect(Target, Range("L5:L33333")) Is Nothing Then 'modifie ton tableau
    If Target.Value = "EN ATTENTE" Then
    Target.Value = "ACTIVE"
     
    Else
    Target.Value = "EN ATTENTE"
    End If
    End If
     
    End Sub
    Encore une fois, je remercie d'avance ceux qui se pencheront sur mon problème

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu ne peux pas avoir deux procédures portant le même nom, tu dois rassembler les deux en une seule.

    au moyen d'un If/Elseif/End If pour chaque Intersect avec le traitement approprié

    de plus, attention car tu as également l'évènement Change qui va se déclencher quand tu vas modifier les valeurs des cellules ... pour neutraliser (si besoin) il faudra inhiber les évènements lors du traitement de SelectionChange, via l'instruction Application.EnableEvents (True ou False)


    PS : les instruction optionnelles (Option Explicit, Option Base 1 etc...) doivent se déclarer en tout début de module, et pas au milieu des procédures

  3. #3
    Membre averti
    Homme Profil pro
    Commercial
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Commercial
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut
    ok après plusieurs essais, j'ai réussi a tout mettre dans le bon ordre.

    Merci

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

Discussions similaires

  1. Problème selection de données VBA
    Par Lyndils dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/06/2015, 19h13
  2. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 08h41
  3. [AC-2013] Problème requête ajout/select en VBA
    Par Defaultuser01 dans le forum VBA Access
    Réponses: 11
    Dernier message: 24/05/2014, 04h55
  4. Problème Item Selection Changed
    Par Chacha35 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 15/09/2009, 10h51
  5. [VBA-E] Problème Select case
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/04/2007, 13h21

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