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 de choix déroulante sur VBA excel - débutante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut Liste de choix déroulante sur VBA excel - débutante
    Bonjour,

    Je rencontre un petit soucis :
    Je crée un programme d'aide à la saisie mensuel. Dans mon formulaire de saisie, j'ai crée une liste de choix déroulante pour choisir les mois.

    De plus, je fais des liens vers les feuilles excel pour compléter la saisie.
    Dans l'une d'elle, j'ai crée une fiche où je voudrais que le mois concerné s'affiche automatiquement (c'est une liste d'adhérents, je n'ai pas un tableau avec janvier / février / ...., mais juste une liste).

    J'ai mis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.Cells(1, 13) = ADJSete.Mois.List
    Mais dans la cellule, il n'y a que le mois de "Janvier" qui s'affiche. Comment faire pour que tous les mois s'affichent automatiquement?

    Je ne sais pas si c'est clair mais j'espère qu'il y a une solution.

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Amandine P. et le forum
    au risque de sembler radoter : on be connaît de ton problème que ce que tu insris dans ton poste. Et c'est pas lourd !
    Je peux aussi te donner une infinité de code qui ne fonctionneront pas. Mais pour t'en donner un qui fonctionne, faudrait avoir une idée de ce que tu veux faire.
    Feuil1.Cells(1, 13)
    Je suppose que dans la feuille de nom "informatique" Feuil1 cellule L1 (moi, je préfère Range("L1"), c'est plus parlant) tu veux créer une liste de validation (Mais dans la cellule, il n'y a que le mois de "Janvier" qui s'affiche)?
    Elle provient d'où ?
    Un bout de fichier ne serait pas un luxe, ou une explication plus claire du but de ta macro.

    et précise de quoi tu parles :
    Dans mon formulaire de saisie : Je suppose que tu utilises une feuille comme formulaire, ou c'est un UserForm ?
    une liste de choix déroulante Liste de validation, combobox de la barre d'outils formulaire, ou de la barre Boîte à outils contrôle ?

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Désolée mais c'est pas facile à expliquer.

    Je vous joint mon fichier excel.

    Cela concerne donc mon userform de saisie avec une liste de choix concernant les mois et mon premier onglet où je voudrais que les mois apparaissent automatiquement en haut à droite.

    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Amandine P.
    C'est pas un fichier d'essai, mais un fichier de travail!
    La différence réside essentiellement dans le nombre et la nature des données forumies.
    Je m'explique : toi tu sais où tu as un problème. Moi non!
    Ton fichier a 10 feuilles vierges de données. Les données peuvent être des nombres ou du texte, le traitement par les macros peut-être différents.

    Comme on a un fichier de travail, je vais le critiquer (j'aime bien, na
    Usagers :
    4 inscriptions ou radiations max dans le mois => et s'il y en a 5, ou 10, on panique ? Même si c'est improbable, ce n'est pas impossible, et vaut mieux y réflèchir avant, surtout que tu vas investir du temps pour faire ton fichier.
    idem pour bénéficiaires : se limiter à 20 me laisse perplexe.
    Pourquoi ne pas avoir utiliser les colonnes à droites, plutôt que les lignes en dessous ?
    idem pour toutes les feuilles qui utilisent les lignes pour séparer des données différentes

    Feuille Activité :
    D7 : =SI(SOMME(D5 : D6)=0;NA();SOMME(D5 : D6))
    MFC D7 (formule) : =ESTERREUR(D7)=VRAI
    C'est une méthode un peu compliquée pour ne pas avoir 0 d'affiché , mais chacun sa méthode.
    Tu crées une erreur NA, mais ta MFC "efface" toutes les erreurs. Il serait mieux d'utiliser =ESTNA() qui ne tient compte que de l'erreur provoquée.
    La MFC s'applique si ta formule esy VRAI, "=VRAI" ne dert à rien :VRAI=VRAI est VRAI et FAUX=VRAI est faux, donc soit feignante : quand la formule de la condition renvoie déjà une valeur logique, utilise-la.
    Moi je mettrait :
    D7 : =SOMME(D5 : D6)
    Pas de MFC D7
    Format de cellule D7 : 0;"Erreur nombre négatif";

    Pour la question posée :
    Cela concerne donc mon userform de saisie avec une liste de choix concernant les mois et mon premier onglet où je voudrais que les mois apparaissent automatiquement en haut à droite.
    l'USF "ADJSete" pourquoi ne pas mettre ce nom dans la demande ? C'est évident pour toi, mais pas pour les autres. Évites les ambiguïtés, elles ne conduident qu'à des erreurs de compréhension
    "premier onglet" ? c'est qoi ? la barre de titre ? une feuille ?

    Pas beaucoup aidé sur ce coup .
    Question subsidiaire : tu connais le mode plan (Menu Données>>Grouper et créer un plan) ?
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Ok mais j'avais déjà réfléchis à tous ça en ce qui concerne mon fichier de travail. J'ai utilisé la formule NA() pour que ça n'apparaisse pas dans mes graphiques.
    En ce qui concerne le nombre d'usagers entrants, sortants, ce n'est pas possible qu'il dépasse le nombre de 4 et si c'est le cas, la personne qui saisit aura juste à insérer des lignes.
    De plus, on est limité à 20 bénéficiaires, donc voilà pourquoi il y a 20 lignes pour le nombre de bénéficiaires.

    Concernant ma question, il s'agit bien du userform ADJSete, et il s'agit de l'onglet excel USAGERS.

    Je voudrais que lorsque on saisit par exemple le mois de avril dans le userform ADJSete, il se mette automatiquement dans l'onglet USAGERS pour saisir les entrées et les sorties. Est-ce possible?

    Concernant ta question : je ne connais pas le mode plan. A quoi ça sert?

    Merci

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Amandine P.
    J'ai utilisé la formule NA() pour que ça n'apparaisse pas dans mes graphiques.
    Et oui, on voit la différence entre ceux qui travaillent avec et ceux qui ne font que regarder
    En ce qui concerne le nombre d'usagers entrants, sortants, ce n'est pas possible qu'il dépasse le nombre de 4 et si c'est le cas, la personne qui saisit aura juste à insérer des lignes.
    et non : tu travailles par macros => les actions que tu effectues sur la feuille n'affectent aucunement ton code =>
    Donc, si tu inseres une ligne, tu vas décaler ce qui est derrière et ton code doit en tenir compte
    NB ; je me suis fait avoir : j'ai cliqué sur la croix de fermeture de l'USF présentation ce qui a entraîné la fermeture d'Excel, et maintenant je ne peux plus ouvrir le fichier qu'en lecture seule Pas glop, pas glop! si j'étais un utilisateur, t'aurais intéret à mettre l'écouteur du téléphone assez loin de l'oreille.
    Je voudrais que lorsque on saisit par exemple le mois de avril dans le userform ADJSete, il se mette automatiquement dans l'onglet USAGERS pour saisir les entrées et les sorties. Est-ce possible?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Mois_Change()
    If Me.Mois.Text <> "" Then Range("mois") = Me.Mois.Text
    Nbdemijournees.Value = Feuil2.Cells(5, Mois.ListIndex + 4)
    Nbjournees.Value = Feuil2.Cells(6, Mois.ListIndex + 4)
    NbJO.Value = Feuil2.Cells(11, Mois.ListIndex + 4)
    End Sub
    Pour expliquer le propos précédent, essaies de rajouter une colonne en A de ta feuille "Activité", ou une ligne en 1 et tu verras ce que je veux dire (fais-le sur une copie "poubellisable", ça évite bien des déboires.
    un "truc" me gène dans ta macro : tu utilises le nom "informatique" des feuilles : c'est plus facile, mais...
    des fois, une feuille Excel se bloque (je sais, ça n'arrive jamais avec microsoft ). Pas de raison connue (par moi, en tout cas), mais la seule solution que j'ai trouvé dans ce cas, c'est de faire une copie de la feuille, supprimer l'original et de renommer la copie. Mais comme tu utilise le nom informatique, il faudra penser à le mémoriser et renommer la feille dans VBA.
    Concernant ta question : je ne connais pas le mode plan. A quoi ça sert?
    c'est une méthode plus rapide de masquer/afficher des colonnes/lignes préalablement goupées.
    A+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/11/2014, 10h07
  2. vba requête paramétrée liste de choix déroulante
    Par langelot222 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/05/2007, 17h38
  3. Réponses: 3
    Dernier message: 09/04/2006, 10h10
  4. VBA Excel (débutant) - problème avec la copie d'un range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2006, 17h32
  5. VBA Excel Débutant : Graphique et objet Range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/11/2005, 19h34

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