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 :

Liste et mise à jour dans une comboBox [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Liste et mise à jour dans une comboBox
    Bonjour.

    Je cherche de l'aide afin de faire marcher un code que j'ai récupérer. Voici mon projet:

    Dans une UserForm (Nv_Reserve_UF) j'ai une combobox (ComboBox1) qui se remplie grâce à une famille (Lst_Localisation) se situant sur la colonne A de la feuille "D1". Le code est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_DropButtonClick()
    'charger la liste "Lst_Localisation" dans la ComboBox
        Nv_Reserve_UF.ComboBox1.List = Application.Transpose(Sheets("D1").Range("Lst_Localisation"))
    End Sub
    Ca, ça marche. Mon problème se situe après. J'effectue un test pour savoir si la valeur entré dans ma ComboBox est déjà dans ma liste. Si oui, parfait, je finis. Si non, je rajoute la nouvelle valeur à la fin de ma colonne A de ma feuille D1. Le code est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'rajouter la zone saisie dans la liste
        If Nv_Reserve_UF.ComboBox1.MatchFound = True Then
            Exit Sub
        Else
            Sheets("D1").[A1].End(xlToDown).Offset(1, 0).Value = Nv_Chantier_UF.ComboBox1.Text
        End If
    End Sub
    Et là, ça ne marche pas. L'erreur affiché est : Erreur de compilation: membre de méthode ou de données introuvable. Est ce posible que je n'ai pas annoncé des variables ou des fonctions? Ou bien que ce soit Excel 2007 qui n'accepte pas ce code.

    Avec mes remerciements.
    Fred

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    A mon avis le (ou un) problème vient de On écrit plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("D1").Range("A1")
    Frédéric
    Développeur d'Applications Access

  3. #3
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour fgiambelluco Dref60000 le forum
    c'est pas xlDown a la place de xlToDown ??

    ATTENTION xlDown tu choisis la premiere cellule vide en partant du haut il faut pas avoir de cellules vide entre il faut prendre xlup
    SALUTATIONS

  4. #4
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour à tous,

    A mon avis le (ou un) problème vient de
    Code :
    Sheets("D1").[A1]
    => Ce code fonctionne, c'est un système de notation différent c'est tout.

    c'est pas xlDown a la place de xlToDown ??
    => effectivement, la liste est proposée quand on ouvre la paranthèse après le end, selectioner comme ça évite les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlDown xlToLeft xlToRight xlUp
    Un exemple pour obtenir la dernière ligne de la colonne 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlig = Cells(65536, 1).End(xlUp).Row + 1
    Un lien surderniere-ligne-derniere-colonne-renseignees-feuille

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re,le fil un salut alex en regardeant de plus pres c'est quoi Nv_Chantier_UF???
    un autre user.avec un autre combo..
    si tu utilise excel 2007 pour trouver la premiere ligne vide dans ton cas un code dans ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1) = "ce que tu veux!!!"
    SALUTATIONS

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour toutes ces réponses.
    J'ai effectivement trouvé mes erreurs:
    -tt d'abord le nom du Userform qui n'était pas le bon.
    -et ensuite la commande xlDown à la place du xlToDown (alors que je l'avais trouvé dans l'aide.....)
    J'obtiens donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'rajouter la zone saisie dans la liste
    If Nv_Reserve_UF.ComboBox1.MatchFound = True Then
        Exit Sub
    Else
        Sheets("D1").[A1].End(xlDown).Offset(1, 0).Value = Nv_Reserve_UF.ComboBox1.Value
    End If
     
    End Sub
    De plus pour alléger le programme, j'ai charger la liste dans ma combobox grace à la caractéristique RowSource.
    Encore merci et bonne nuit.
    Fred

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

Discussions similaires

  1. mise à jour dans une table
    Par christeldum dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/02/2009, 09h16
  2. Insertion d'une mise à jour dans une création de vue
    Par Ptite_Tigresse dans le forum Langage SQL
    Réponses: 0
    Dernier message: 30/08/2007, 12h34
  3. Mise à jour d'une comboBox dans Visual Studio
    Par lilimilou29 dans le forum VB.NET
    Réponses: 7
    Dernier message: 31/05/2007, 17h04
  4. Réponses: 2
    Dernier message: 14/05/2007, 10h45
  5. Mise à jour dans une table
    Par manucha dans le forum Oracle
    Réponses: 4
    Dernier message: 01/03/2007, 11h11

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