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 :

combobox, ligne interdite


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut combobox, ligne interdite
    Bonjour,

    j'ai une combobox dans un userform. Ce que je voudrait faire c'est interdire la sélection de certaine ligne (des lignes de séparation entre des groupes d'éléments pour que la combobox soit plus lisible).

    Est-il possible de le faire simplement ?
    A lire :Les Règles

  2. #2
    Membre habitué Avatar de PUARAI
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 191
    Points : 145
    Points
    145
    Par défaut
    Bonjour le forum, quand tu dis interdire c'est à dires, quand tu click dessus la ligne avec ta souris que ta souris ne selectionne pas cellules ?
    J'ai un bout de code je ne sais pas si c'est celui la qui t'interesserais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_selectionChange(ByVal Target As Range)
        If Target.Row = 10 Then 'interdire l'accès à la ligne 10 par exemple
           Range("I" & Target.Row).Select 'et "I" quand tu click dans la ligne 10 celle ci te selectionne automatiquement la cellule à l'intersection de la ligne 10 et la colonne "I"mais bof tu peu changer la cellule si tu veux.
        End If
    End Sub
    A +++
    PUARAI

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    je pense que tu veux quelque chose ressemblant à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Click()
      Static ancien As Integer
      Dim interdits As String
      interdits = "/2/4/" 'ici tes index de lignes interdites (n'oublie pas que la ligne 1 a l'index 0)
      If InStr(interdits, "/" & ComboBox1.ListIndex & "/") > 0 Then
         ComboBox1.ListIndex = ancien
      Else
        ancien = ComboBox1.ListIndex
      End If
    End Sub

  4. #4
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    j'ai testé ta solution, mais je n'arrive pas à la faire fonctionner.

    Est-ce que cela peut être dû à l'existence d'un combobox_change ? (qui se lance aussi lorsque je clic sur une ligne)
    A lire :Les Règles

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Citation Envoyé par zandru Voir le message
    j'ai testé ta solution, mais je n'arrive pas à la faire fonctionner.

    Est-ce que cela peut être dû à l'existence d'un combobox_change ? (qui se lance aussi lorsque je clic sur une ligne)
    Re...,
    Je ne pourrai te répondre que lorsque tu auras montré ton code (tout ce qui concerne ta Combo), car ma boule de crystal est en panne.

  6. #6
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Re...,
    Je ne pourrai te répondre que lorsque tu auras montré ton code (tout ce qui concerne ta Combo), car ma boule de crystal est en panne.
    y a bien un pluging firefox qui fait ça

    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
    Private Sub numaff_Change()
        If faccreation.numaff.ListIndex > 1 Then
    '        If IsNumeric(Left(faccreation.numaff.Text, InStr(1, faccreation.numaff.Text, "-") - 1)) = True Then
                'mise à jour du digit client
                faccreation.numclient.Caption = numerosaff.Cells(faccreation.numaff.ListIndex + 6, 5)
                'recherche bl
                Dim chemin As String
                chemin = "C:\Documents and Settings\Scale\Mes documents\GABRIEL PERSO\GESTION VBA\"
                dirtest = Dir(chemin & "BL\*")
                faccreation.Listblavoir.Clear
                While dirtest <> ""
                    If CInt(Mid(dirtest, InStr(Len(dirtest) - 8, dirtest, "-", vbTextCompare) - 5, 3)) = CInt(Left(faccreation.numaff.Value, InStr(1, faccreation.numaff.Value, "-", vbTextCompare) - 1)) Then
                        faccreation.Listblavoir.AddItem (Left(dirtest, InStr(1, dirtest, ".") - 1))
    '                    ##
                    End If
                    dirtest = Dir
                Wend
                'recherche avoir
                dirtest = Dir(chemin & "AVOIR\*")
                While dirtest <> ""
                    If CInt(Mid(dirtest, InStr(1, dirtest, "-", vbTextCompare), 3)) = CInt(Left(faccreation.numaff.Value, InStr(1, faccreation.numaff.Value, "-", vbTextCompare) - 1)) Then
                        faccreation.Listblavoir.AddItem (Left(dirtest, InStr(1, dirtest, ".") - 1))
    '                    ##
                    End If
                    dirtest = Dir
                Wend
                'adaptation des conditions de paiements
                Call Condition_de_paiement
        Else
                faccreation.Hide
                facmultinumaff.Show
        End If
    '    End If
        Call Toutfait
    End Sub
    et l'adaptation de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub numaff_Click()
        Static ancien As Integer
        Dim interdits As String
        interdits = "/1/" 'ici tes index de lignes interdites (n'oublie pas que la ligne 1 a l'index 0)
        If InStr(interdits, "/" & numaff.ListIndex & "/") > 0 Then
           numaff.ListIndex = ancien
        Else
           ancien = numaff.ListIndex
        End If
    End Sub
    voilà

    faccreation = userform
    numaff = combobox


    (je te fait grâce des 600 autres ligne du userform )
    A lire :Les Règles

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bon...

    J'ignore ce qui, chez toi, pourrait ne pas aller...

    Je te suggère par ailleurs d'oublier ton évènement Change.

    Regarde bien le code du click, calmement :

    Tu devrais y découvrir assez facilement que tes instructions additionnelles (celles que tu as mises dans l'évènement Change) peuvent tout simplement figurer dans la clause Else, en y remplaçant
    qui n'est au bout du compte que le contenu de l'article sélectionné
    par, donc :
    qui est la même chose ...

Discussions similaires

  1. [XL-2007] Retour à la ligne interdit
    Par vandman dans le forum Excel
    Réponses: 5
    Dernier message: 22/10/2014, 12h11
  2. colorer les lignes d'une combobox ligne par ligne
    Par kroma23 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2011, 18h36
  3. [XL-2003] Combobox Ligne non sélectionnable
    Par Cmama dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/08/2009, 18h36
  4. ComboBox et récupération de ligne
    Par Andry dans le forum Delphi
    Réponses: 11
    Dernier message: 19/07/2006, 14h54
  5. [ComboBox] Recuperer la ligne selectionnée
    Par webbulls dans le forum Composants
    Réponses: 4
    Dernier message: 11/07/2005, 10h49

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