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 :

Ajout dans un Tableau via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 145
    Par défaut Ajout dans un Tableau via VBA
    Bonjour à Tous,

    Je me permet de vous solliciter car je me retrouve devant une impasse.

    J'ai une feuille Excel que j'appelle "Listes" ou se trouvent sous formes de tableau les listes que j'utilise pour les combobox de mon UserForm.

    J'aimerais, pour certaines listes, que lorsque ce que l'utilisateur tape dans la comboBox ne se trouve pas dans la liste l'entrée s'ajoute à cette liste.

    Voici le code que j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub cmbOrigineDemande_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If cmbOrigineDemande.ListIndex = -1 And cmbOrigineDemande.Value <> "" Then
            If MsgBox("Voulez-vous ajouter cette entrée dans la liste ?", vbYesNo) = vbYes Then
                Sheets("Listes").Activate
                Range("A1").Select
                Selection.End(xlDown).Select 'on se positionne sur le dernière ligne non vide
                Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
                ActiveCell.Value = cmbOrigineDemande.Value
            Else
                cmbOrigineDemande.Value = ""
            End If
        End If
    End Sub
    Le truc qui me chiffonne est que ça marche parfaitement si je teste sur une autre feuille sur une liste que je n'ai pas transformée en Tableau. Je me dis donc que je dois insérer différemment dans un tableau mais je ne vois pas comment.

    Je suis donc preneur de toute info pouvant m'aider.

    Merci d'avance !

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Almenor, bonjour le forum,

    Peut-être comme ç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
    Private Sub cmbOrigineDemande_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim L As Worksheet
    Dim LI As Integer
     
    Set L = Worksheets("Listes")
    If cmbOrigineDemande.ListIndex = -1 And cmbOrigineDemande.Value <> "" Then
        If MsgBox("Voulez-vous ajouter cette entrée dans la liste ?", vbYesNo) = vbYes Then
            LI = IIf(L.Range("A2").Value = "", 2, L.Range("A1").End(xlDown).Row + 1)
            L.Cells(LI, "A").Value = cmbOrigineDemande.Value
        Else
            cmbOrigineDemande.Value = ""
        End If
    End If
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 145
    Par défaut
    Bonjour Thautheme et merci pour ton aide.

    J'ai le même message d'erreur qu'avec mon code : "La méthode "Value" de l'objet "Range" a échoué"

    Par contre si je teste sur ma feuille "TEST" dans laquelle j'ai une liste qui n'est pas sous forme de tableau ton code fonctionne aussi.

    Devrais-je abandonner l'idée de mettre mes listes sous forme de tableau ?

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Pourtant ça devrait marcher, regarde l'exemple en pièce jointe. Je rajoute sans problème les autres jours de la semaine...
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 145
    Par défaut
    Alors, après plusieurs tests j'ai compris pourquoi ça marche dans ma feuille "TEST" et pas ma feuille "Listes".

    les nouvelles entrées s'ajoutaient bien à la liste dans la feuille "TEST" car j'affichais toujours dans la combobox la liste de la feuille "Listes".

    Dès que j'ai affiché dans ma combobox la liste de la feuille "TEST" je me suis retrouvé face au même problème.

    Donc, à priori, j'ai un soucis dans ma manière d'afficher ma liste dans ma combobox qui entre en conflit avec l'insertion d'une nouvelle entrée dans la liste.

    pour afficher ma liste dans la combobox j'ai simplement donné un nom à ma liste via le gestionnaire de nom et ensuite j'indique le nom de ma liste dans le champs "RowSource" des propriétés de la la combobox.

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    J'ai rien compris. Sans fichier on va y passer des lustres !....

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

Discussions similaires

  1. [XL-2010] Insérer une formule excel dans un tableau via macro (VBA)
    Par mfall76 dans le forum Excel
    Réponses: 5
    Dernier message: 19/06/2018, 16h27
  2. [XL-2016] EXCEL + VBA 2016 Générer référence dans un tableau via un UserForm
    Par EXCELFORME dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2016, 21h29
  3. [XL-2010] Ajouter des valeurs dans un tableau avec vba
    Par lovlov33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/01/2016, 17h01
  4. Réponses: 1
    Dernier message: 18/07/2014, 13h40
  5. [OL-2010] Ajouter un lien hypertext sur du texte sélectionné dans un mail via VBA
    Par armando76 dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 10/03/2012, 14h15

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