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 :

formulaire en VBA [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut formulaire en VBA
    Bonjour,

    voila mon petit problème :

    j'ai réalisé un formulaire en VBA, dans les zones control sources j'ai mis des cellules et dans les rowsources d'autres cellules

    Lorsque je valide ma saisie et que je n'ai rien changé dans certaines Listbox ou combobox par rapport à la valeur proposé par defaut, je ne retrouve rien dans les cellules de mon control source.

    y a til une procedure pour mettre à jour les "zones de resultat"?
    j'ai essayé userform1.repaint sans succés.



    merci d'avance

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour kidone le forum si tu veus que quelqu'un t'aide il faut en dire plus. comme cela pas simple sans code ou zip exemple.

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut
    bonjour,

    voila le fichier, mais c'est pas encore terminé

    clic dans feuille Pilotage sur bouton saisie visite
    chercher un client dans la combobox par le nom
    faire entrée rafraichit bien le resultat dans la liste box d'a coté

    mais dans la feuille parametres sur la ligne 2
    l'etab, le delegue, le nom du delegue, le code client et parfois le nom
    ne se mettent pas à jour !...

    je commence avec les formulaires, et c'est pas simple, si quelqu'un connait une doc sympa, n'hesitez pas

    merci d'avance
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu sais ce que tu dois d'abord faire?
    Refais tous tes codes en suivant la remarque suivante: ((c) Krovax
    en virant toutes tes select

    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Machin.Select
    Selection.Faire
    DirectementDéjà cela économise beaucoup en terme de lisibilité, performances et méthodologie.

    Encore: le Formula est utilisé même quand c'est pas nécessaire! regardes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        .Range("N9").Formula = "Nom_cli "
        .Range("N10").Formula = "=IF(ISERROR(RC[1]),RC[2],IF(ISERROR(RC[2]),RC[1],""""))"
    Alors que cela sera mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        .Range("N9").value= "Nom_cli "
        .Range("N10").FormulaR1C1 = "=IF(ISERROR(RC[1]),RC[2],IF(ISERROR(RC[2]),RC[1],""""))"
    Si tu veux écrire dans la cellule sulement une valeur, n'utilise pas de Formula!!
    Quand une formule tenant compte des références relatives: utilise .FormulaR1C1
    ...

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour tous,
    Comme il met les noms de fonctions excel en anglais je me demande si ce ne serrai pas mieux d'employer FormulaLocal
    Sais pas...
    A+

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut le principal maintenant
    Bonjour,
    merci à tous pour ces conseils d'experts qui me sont d'une grande utilité pour le debutant que je suis. Je suis en train de corriger le code.....

    mais le principal reste à trouver : pourquoi les cellules du control sources ne se mettent pas à jour si je ne selectionne pas la cellule du formulaire

    encore un petit coup de :

    merci d'avance

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    J'ai charger ton classeur et pppffftttt, c'est du n'importe quoi !!!
    Déjà que ta question est pas claire,
    Au vu du code, je ne comprend pas du tout ce que tu veux faire vu qu'il n'y a aucun appel à une sub quand tu sélectionne le nom du client dans le combo client.
    Tâche un peu d'expliquer exactement le déroulement que tu souhaite, sinon ça sera impossible (du moins pour moi) de t'aidé.
    A+

  8. #8
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut
    bonjour,
    vous dites :
    J'ai charger ton classeur et pppffftttt, c'est du n'importe quoi !!!
    pas tres sympa pour moi,
    vu le temps passé, mais c'est pas grave on ne se vexe pas! et on continue à perséverer (Je rigole bien sur )

    Pour info je n'en suis qu'au debut et donc je n'ai pas terminé le code.

    Concretement, je vais essayer d'etre plus clair.

    Je veux enregistrer des visites dans une base (Base_vis) de mon classeur
    c'est la premiere fois que j'utilise un formulaire.
    Je croyais que si l'on mettait une cellule dans chaque controlsource les infos qui apparaissent dans le formulaire etaient automatiquement rappatriées dans ces cellules, et que lorsque l'on veut sortir du formulaire par le bouton Ok par exemple, on avait à dispo toutes ces valeurs, dans les cellules definies par controlsource.
    Je viens de trouver un exemple sur le net, et le gars à la sortie recupére les infos du formulaire avec des instructions du style (à quelque chose prés):
    with sheets("parametres").range("B2").value = saisie_visite.Tetab.value
    end with


    Mais pour moi cela ne fonctionne pas.
    je pre-rempli certaines zones comme etab, delegué,etc.. et on n'y touche plus. Je sais que cela peut paraitre bizarre. mais ces zones sont mémorisées dans la base pour une future consolidation avec d'autres classeurs des autres délégués et la j'en aurais besoin.

    je veux pouvoir recuperer ces zones du formulaires dans la feuilles parametres sur la ligne 2 et a la sortie par bouton OK et les insérer dans ma base (Base_vis).
    Je pense que je n'ai pas tout compris dans les formulaires.

    Par contre si je clique sur la Listbox de Etab (Tetab) quand le formulaire est affiché, la j'ai bien la valeur qui s'affiche dans parametres!B2
    Mais normalement l'utilisateur ne clique pas dans cette case.
    je suis sur que c'est pas grand chose.


    si quelqu'un peut etre indulgent avec moi, et tout m'expliquer, j'en serai ravi

    merci à tous pour votre patience, et votre gentillesse.
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour,
    Du progrès tu as fais.
    Au lieu du "code" d'hier
    aujourd'hui, aucun code et aucun userform!
    Tu as mis un autre fichier?

    Pour la question d'écrire les données de l'userform, sur le bouton valider, tu mets ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Tafeuille).Range(TaCellule).Value=TextBoxN.value
    Cela sur clique du bouton, la valeur écrite dans ton textbox TextBoxN dans la cellule TaCellule de la feuille TaFeuille.

  10. #10
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut Désolé
    bonjour,
    j'ai remis le bon fichier.
    ok merci pour la formule, mais si je ne clique pas sur la listbox il n'y a rien dans ma cellule
    pouvez m'en dire plus
    j'ai bien la solution de charger parametres B2,C2, D2 avec les valeurs de Base_cli puisque elles sont fixes pour chaque classeurs, mais j'aimerais juste comprendre
    merci d'avance

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    L'userform et la feuille sont "indépendants" (entre guillemets)

    Si tu écris dans ton TextBoxN de l'Userform, TaFeuille ne reçoit cette valeur dans la cellule TaCellule que si quelqu'un ou quelque chose (une action ou un évènement) lui montre le chemin!

  12. #12
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut control source
    bonjour,
    ok pour l'info, mais pour comprendre,
    à quoi sert la "propriete" controlsource alors ?
    je croyais que les donnees allaient a l'endroit inscrit dans controlsource.
    quelle action faut il faire pour alimenter la zone du controlsource si on ne touche pas à la valeur initialisé de l'userform?
    merci a+

  13. #13
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Le TextBoxN de ton Userform peut lire TaCellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBoxN.Value=Sheets(TaFeuille).Range(TaCellule).Value
    Ou écrire dans TaCellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(TaFeuille).Range(TaCellule).Value=TextBoxN.Value
    Par exemple:
    Dans l'évènement Initialize de ton Userform, tu peux lire la cellule "A13" et mettre sa valeur dans le TextBox1

    Sur évènement Click du Bouton Valider, Tu peux écrire dans la cellule "C6" la valeur de TextBox5
    ...
    Je vais d'abord te chercher un lien pour comprendre mieux l'utilisation des Userforms et Controls!

    Regarde ce lien: c'est l'abécédaire: http://silkyroad.developpez.com/VBA/ControlesUserForm/
    Et c'est intéressant.

    Tes codes récupérés ailleurs nécessitent beaucoup de nettoyage. Personne ici (je crois) ne fera cela.
    Il ne suffit pas d'écrire n'importe quoi et attendre des miracles.
    Je ne prétends pas te décourager, mais comme un précédent poste. commence par lire et comprendre les tutoriels (sur des exemples simples). quand tu auras appréhendé l'essentiel, attaques le nettoyage de ton code ou sa réécriture.
    bon courage

  14. #14
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Re, bonjour mercatog,
    Je ne voulais pas te décourrager mais attiré ton attention sur ta façon de coder qui, pour le moment, ressemble vraiment à....
    Pour avancer dans la connaissance de la syntaxe des propriétés et méthodes, le meilleur truc...
    Sur l'Userform, tu sélectionne le contrôle dont tu veux avoir un renseignement (qu'il ai des "poignées") ensuite tu tape F1
    Examine les propriétés et methodes ainsi que les exemples qui sont nombreux.
    C'est la meilleur façon d'avancer.
    Bon courrage
    A+

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

Discussions similaires

  1. formulaire et sous formulaire access (vba access)
    Par alexkickstand dans le forum Access
    Réponses: 3
    Dernier message: 21/04/2006, 19h11
  2. Création de formulaire en VBA
    Par julio02200 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 17h10
  3. Création de formulaire en VBA - Plantage
    Par Shansson dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h48
  4. enlever la croi pour fermer un formulaire en vba?
    Par xtaze dans le forum Access
    Réponses: 6
    Dernier message: 15/06/2005, 17h16
  5. Créer un formulaire avec VBA ?
    Par Jean Bonnisme dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/10/2004, 10h40

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