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 :

Mon listbox ne récupère rien [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Mon listbox ne récupère rien
    Bonjour à tous,
    j'apprends depuis un moment le vba Excel et je commence à m'habituer a son synthase, mais il arrive des moments ou je bloque.
    comme aujourd'hui, je suis bloqué a un niveau ou j'ai créer un userform ou j'ai mis deux contrôles: un listbox et un bouton.

    j'ai crée deux feuille : feuille "Accueil" et feuille "Base client"
    j'ai un bouton d'appel sur la feuille "Accueil" de mon userform
    et à l'initialisation du userform j'ai fait une ligne de code pour récupérer la liste des clients de la feuille "Base client" qui elle est dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    Dim i As Long
    i = Sheets("BASE CLIENT").Range("C2:C" & Range("C1048576").End(xlUp).Row).Count
    Me.ListBox1.RowSource = Sheets("BASE CLIENT").Range("C2:C" & i).Address
    End Sub
    le problème est que listbox ne récupère rien si la feuille "Base client" n'est pas active ou bien ma variable i s'en fiche de Sheets("BASE CLIENT").
    suis completement debousolé, apparement cela devrait marché mais làlàlà, il ya rien qui se passe.......
    pourriez-vous m'aider a comprendre s'il vous plait.

    merci d'avance

  2. #2
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Travaille avec des tableaux structurés, ce sera plus simple à coder.


    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ListBox1.List = Sheets("BASE CLIENT").Range("C2:C" & i).Value
    "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
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    je crois que le problème vient de la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = Sheets("BASE CLIENT").Range("C2:C" & Range("C1048576").End(xlUp).Row).Count
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = Sheets("BASE CLIENT").Range("C2:C" & Sheets("BASE CLIENT").Range("C1048576").End(xlUp).Row).Count
    mais personnellement je détermine mon derniere ligne non vide ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = Sheets("BASE CLIENT").Cells(Rows.Count, 1).End(xlUp).Row
    et je propose de définir tes onglets de départ :
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim F1 as worksheet
    dim f2 as worksheet
    set F1= sheets("blabla")
    set F1= sheets("blabla2")
    i =  F1.Cells(Rows.Count, 1).End(xlUp).Row
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour Pierre

    j'ai essayé ta ligne de code et ça marché tout en ajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = Sheets("BASE CLIENT").Range("C2:C" & Sheets("BASE CLIENT").Range("C1048576").End(xlUp).Row).Count

  5. #5
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Oui, forcément, je n'ai repris que la ligne qui posait problème, mais il me paraissait évident que puisque cette ligne utilise la variable i, il faut que cette dernière ait été valorisée avant...


    Comme dit dans mon précédent message, si tu travaillais avec des tableaux structurés, tu n'aurais pas tous ces problèmes de devoir définir la feuille et chercher la dernière ligne. On est en 2020, les tableaux structurés s'imposent pour une utilisation professionnelle d'Excel et du VBA pour Excel...

    Comme on voit sur l'image suivante, le code utilise la référence structurée du tableau:
    • On s'en fout de savoir sur quelle feuille;
    • On s'en fout de savoir où sur la feuille;
    • On s'en fout de savoir combien de lignes;
    • Si, par la suite, des lignes sont ajoutées dans le tableau structuré, le code fonctionne nickel et prend les nouvelles lignes dans le tableau.



    Nom : 2020-10-30_114423.png
Affichages : 134
Taille : 112,9 Ko


    En 2020, les tableaux structurés ne sont pas "une option". Il est temps de s'y mettre et de les utiliser!
    "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...
    ---------------

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    il y a quel différence si je définissais les onglet ainsi.

  7. #7
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Bonjour,

    Je suppose que tu parles du post de BENNASR ?

    La méthode de définissions de feuille , comme proposé par BENNASR, te permet en cas de modification du nom de l'onglet de n'avoir qu'une ligne de code à changer, et d'être plus concis dans tes codes ( moins long, plus compréhensible). Perso, pour une utilisation de code comme le tiens , je ne passe pas par le nom de l'onglet mais par le code name (modifié) de la feuille.

    De plus avec l'utilisation de Tableau Structuré ( qui est/ devrait être la norme en 2020), on peut même s'affranchir de ce référer au name/codename de la feuille en passant directement par le nom de la table.

    Bàt,
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Sérieux pierre tu as absolument raison, c'est claire, précis et moins long.... tu n'as pas un lien qui me permettrais de m'approfondir sur le sujet

  9. #9
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Je t'ai donné un lien vers mon tuto sur les tableaux structurés dans ma première réponse. Je dois finaliser le tuto sur la manipulation du tableau structuré en VBA, mais pour un grand nombre de cas de programmation, l'utilisation des références structurées comme je l'ai illustré suffit amplement.



    PS: Il n'est pas utile de reprendre tout un message en citation lors de tes réponses sur le forum. Si tu dois vraiment mettre une partie d'une réponse pour la commenter, ne reprends que cette partie dans ta réponse. Merci.
    "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...
    ---------------

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par mfoxy Voir le message
    [...]

    Je comprends bien.
    mais imagine si ta un classeur partager avec trois utilisateur, la il y'aura un problème puisque ce classeur n'accepte pas les tableaux.
    je sais que ce n'est pas la question sur ce post mais comme il ya des doyens sur ma question j'en profite.
    j'ai fais un classeur partager où le vba est opérationnel, j'ai réussi a contourner les conflit des données, mais le classeur n'accepte ni connexion avec d'autre classeur ni les tableaux,
    sur ce point comment faudrait-il travailler

  11. #11
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Les classeurs 365 "partagés" acceptent les tableaux structurés sans soucis.

    Qu'appelles-tu "classeur partagé"? Combien de personnes sont connectées en même temps sur le classeur "partagé"?

    Devoir saisir des données à plusieurs dans le même classeur est tout sauf une bonne idée, de mon point de vue, surtout si tu mets du VBA pour la saisie, puisque tu vas en quelque sorte court-circuiter les mécanismes de partage d'Excel...

    Normalement, on saisis dans des tableaux structurés du classeur, et on utilise Power Query pour ramener les données dans un classeur où on exploite ces données (graphiques, TCD, analyses...)


    Au passage, bis repetita: Merci de NE PAS REPRENDRE UN MESSAGE COMPLET en citation dans ta réponse!
    "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...
    ---------------

  12. #12
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci pour le lien Pierre et Désolé je n'ai savais pas vraiment réellement comment m'y prendre avec le système des réponses

  13. #13
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Nom : img01.PNG
Affichages : 97
Taille : 4,9 Ko

    je partage mon classeur a travers l'icone en cercle ci-dessous.
    8 personnes travaillent dessus.

    et voila le message qui s'affiche quand j'essaie de partager mon classeur avec un tableau

    Nom : img02.PNG
Affichages : 187
Taille : 37,6 Ko

  14. #14
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Cette façon de partager les fichiers est obsolète. XL365 n'offre plus cette possibilité nativement, et il faut aller rechercher l'outil dans les tréfonds de la personnalisation du ruban.

    Tu as normalement un onedrive associé à ton compte XL365, et il suffit de mettre le fichier à disposition sur le onedrive pour que chacun puisse y travailler. Cela dit, je le répète, la saisie simultanée de données dans un tableau par plusieurs utilisateurs est tout sauf une bonne idée, selon moi. Ne connaissant pas ton classeur ni tes besoins, je sais difficilement aller au delà du constat que Excel, à part pour de la saisie pure (dans des tableaux structurés), n'est pas conçu pour une utilisation simultanée par plusieurs personnes.
    "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...
    ---------------

  15. #15
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2016
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2016
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Un grand Merci a vous,
    Pierre j'ai finis de lire ton tuto sur les tableaux structurés, très inspirant... si je commence a te suivre en 3 mois j'aurais le niveau qu'il faut.
    tu es quelqu'un DE TRES inspirant et il ya beaucoup de passion dans ton tuto.

    merci a toi mfoxy et à toi BENNASR

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

Discussions similaires

  1. [AJAX] AJAX ne récupère rien comme valeur
    Par djeandot dans le forum AJAX
    Réponses: 9
    Dernier message: 26/06/2009, 14h47
  2. [image] mon programme ne donne rien !
    Par bahiatoon dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/02/2007, 13h30
  3. Mon programme n'affiche rien!!!!
    Par matthieu5978 dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 11h28
  4. pourquoi mon quickreport n'affiche rien ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 31/07/2005, 00h59

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