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 :

ListBox et tableau strucuré vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    interessé par informatique
    Inscrit en
    Novembre 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : interessé par informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 42
    Par défaut ListBox et tableau strucuré vide
    Bonjour,

    J'ai un petit souci en utilisant les tableaux structurés. Lorsque je vide le tableau, il me reste toujours une ligne vide.... (j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not Table.databodyrange is nothing then table.databodyrange.delete
    Or cela est génant car je me sers de ces tableaux pour faire des chargement/ sauvegarde de ListBox ou comboBox....

    Existe-t-il une autre solution pour vider mon tableau ? ou dois-je trouver un autre artifice ?

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    En fait, le tableau structuré est bien vidé par la commande que tu utilises. Mais côté Excel, tu auras toujours une ligne présente dans la référence structurée, et donc toujours une ligne dans la liste déroulante associée à une colonne de ton tableau.

    Dans les faits, ce ne devrait pas être trop gênant car je suppose que le tableau sera rapidement alimenté.

    Nom : 2019-12-16_090737.png
Affichages : 665
Taille : 25,6 Ko

    Si tu veux vraiment éviter la liste déroulante avec une ligne vide, tu peux nommer une formule qui teste que ton tableau est vide et appuyer ta liste de validation sur cette formule nommée.

    Nom : 2019-12-16_101218.png
Affichages : 651
Taille : 18,5 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Homme Profil pro
    interessé par informatique
    Inscrit en
    Novembre 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : interessé par informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 42
    Par défaut
    Bonjour,

    En fait, une liste vide = "*" (soit un joker) c'est à dire je prends toutes les valeurs et plutôt que de faire une requête avec toutes les valeurs, ma requête ne porte pas sur ce champ...

    Je vais trouver une solution avec cette contrainte.

    Merci.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Désolé, j'avais lu trop vite et compris "liste de validation" et pas "listbox". Tes listbox sont dans des userform ou sur ta feuille?

    Si c'est dans une userform, tu peux facilement choisir, au chargement de la liste, comment la remplir en fonction du fait que ton tableau est vide ou pas. Si tu dois ajouter un astérisque pour dire "je prends tout", soit tu mets l'astérisque dans ton tableau en première position, soit tu recrées un array en vba avec d'abord l'astérisque puis le contenu du tableau.

    Que veux-tu faire exactement? quel code utilises-tu pour charger ta listbox?


    PS: J'ai scindé la présente discussion de celle sur l'emplacement des tableaux structurés pour plus de clarté
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Homme Profil pro
    interessé par informatique
    Inscrit en
    Novembre 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : interessé par informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 42
    Par défaut
    Bonjour,

    C'est dans la feuille
    Mon code est le suivant :
    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
    Sub Affectation_Liste(Table As ListObject, Sens As String, ByVal Liste As msforms.ListBox)
     
    Dim EOF As Long
    Dim Zone As Range
     
    ' ******************************
    ' ** Sens = "To" / "From"
    ' **  copie Table to Listbox
    ' **  copie Table From Listbox
    ' ******************************
     
    Select Case Sens
        Case "To"
            With Table
                EOF_L = .ListRows.Count
                If EOF_L = 0 Then
                    Liste.Clear
                Else
                    If EOF_L = 1 Then
                        Liste.Clear
                        Liste.AddItem .ListColumns(1).DataBodyRange.Value
                    Else
                        Liste.List() = .ListColumns(1).DataBodyRange.Value
                    End If
                End If
            End With
        Case "From"
            Call Vide_Table(Table)
            Nb_Element = Liste.ListCount
            If Nb_Element > 0 Then
                Set Zone = Worksheets(Table.Parent.Name).Range(Table.HeaderRowRange.Address).Resize(Nb_Element + 1, 1)
                Table.Resize Zone
                Table.DataBodyRange = Liste.List
            End If
        End Select
     
    End Sub
    Je vais juste rajouter une condition, pour savoir si liste a un élement vide.

    cordialement.

Discussions similaires

  1. [VBA-E] eviter blanc remplissage listbox avec tableau
    Par chmod777 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/04/2006, 13h16
  2. Savoir quand une variable ou un tableau est vide
    Par cryptorchild dans le forum Langage
    Réponses: 1
    Dernier message: 17/02/2006, 09h40
  3. [Tableaux] Tableau valeur vide pour une clé
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 12h49
  4. Comment détecter si un tableau est vide ?
    Par ErPi dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 19h50
  5. [langage] tableau @ à vide
    Par pascal.cargouet dans le forum Langage
    Réponses: 2
    Dernier message: 18/10/2004, 13h38

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