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 :

Amélioration / Modification AddItem


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Par défaut Amélioration / Modification AddItem
    Bonjour,

    Je suis confronté à une question à laquelle malgré moult recherches, je ne trouve pas de réponse, je fais donc appel à vos connaissances !

    J'ai récupéré ce 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
    Sub Personnalisation1()
    On Error Resume Next
    PersoNomBD = "Gestions Véh."
    PersoNomColonne = "Type"
    For BoucleCol = 2 To NbColonnes
        If Cells(1, BoucleCol) = PersoNomColonne Then PersoNuméroColonne = BoucleCol
    Next BoucleCol
    If NomBD = PersoNomBD And Cells(1, PersoNuméroColonne) = PersoNomColonne Then
     
        Controls("Champ" & PersoNuméroColonne).Clear
        Controls("Champ" & PersoNuméroColonne).AddItem "L1 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L1 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L1 H3"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H3"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H3"
     
        Controls("Champ" & PersoNuméroColonne).Width = 75
        Controls("Champ" & PersoNuméroColonne).Height = 16
        Controls("Champ" & PersoNuméroColonne).BackColor = vbWhite
        Controls("Champ" & PersoNuméroColonne).ForeColor = vbBlue
        Controls("Champ" & PersoNuméroColonne).ShowDropButtonWhen = fmShowDropButtonWhenAlways
     
    Else
    End If
    End Sub
    Ce code marche bien et me conviens... Ou presque... Je souhaite l'utiliser pour +/- 150 "Références", qui évolueront régulièrement...

    Les modifier directement dans VBA (même trimestrielles) sont donc inenvisageables...

    Je voudrai donc placer, par exemple, ma liste de "Références" dans la colonne "A" de la "Feuil1"
    J'aimerai, si possible, une solution qui resterai dans ce type d' "architecture"

    Avant de poster, j'ai bien entendu mis les mains dans le cambouis et longuement cherché sur le net, mais sans succès...

    Merci d'avance pour vos réponses !

    Excellemment votre...

    R.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Hum...

    Je n'ai pas bien compris...

    En fait tu veux qu'à la place de changer dans le code tes deux références, c'est-à-dire celles-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PersoNomBD = "Gestions Véh."
    PersoNomColonne = "Type"
    les changer en cellule A1 et A2 par exemple puis exécuter ta macro ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Par défaut
    Heu... Non... Je savais que c'était pas clair !!

    C'est passer de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Controls("Champ" & PersoNuméroColonne).AddItem "L1 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L1 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L1 H3"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L2 H3"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H1"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H2"
        Controls("Champ" & PersoNuméroColonne).AddItem "L3 H3"
    ' sur +/- 150 lignes...
    A un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controls("Champ" & PersoNuméroColonne).AddItem "Toutes les valeurs Colonne A"
    Dans la colonne "A" de la "Feuil1" je mets :
    "L1 H1"
    "L1 H2"
    "L1 H3"
    "L2 H1"
    "L2 H2"
    "L2 H3"
    "L3 H1"
    "L3 H2"
    "L3 H3"
    ......

    Comme ça, au quotidien je peux modifier ma liste de choix sur la "Feuil1", sans devoir aller faire les modifications dans le code VBA.
    C'est plus simple de faire un copier/coller dans une colonne, que d'ouvrir un code VBA et de farfouiller dedans...

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Tente ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Worksheets("Feuil1")
        For i = 0 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
            Controls("Champ" & PersoNuméroColonne).AddItem .Range("A1").Offset(i, 0).Value
        Next i
    End With
    Je n'ai aucune idée si ça fonctionne avec l'objet "Control" que je n'ai jamais utilisé.
    Tiens moi au courant !

  5. #5
    Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Par défaut
    Salut,

    J'ai essayé ton code (tel quel et en le triturant...) sans succès...

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim str As String
     
    For i = 0 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
        str = Worksheets("Feuil1").Range("A1").Offset(i, 0).Value
     
        Controls("Champ" & PersoNuméroColonne).AddItem str
    Next i

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