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 - Saisie - ligne par ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 28
    Par défaut Formulaire - Saisie - ligne par ligne
    Bonsoir à tous,

    Tout d'abord ma situation :

    http://prntscr.com/2w1kcf : avant de saisir quoi que ce soit.

    http://prntscr.com/2w1k77 : click 1 fois sur "ajouter une source d'information".

    http://prntscr.com/2w1kn2 : choix d'une source, elle s'inscrit, no problemo.

    http://prntscr.com/2w1kts : Voici mon problème; lorsque je passe "à l'étape suivante", il me décalle tout d'une ligne.


    Voici ma macro. Il y a deux formulaires car j'ai été incapable de dissocier l'insertion "type de source d'information" avec "Pays", c'est soit l'un soit l'autre.

    http://prntscr.com/2w1lsl : pour le choix de la source, 1er formulaire.

    http://prntscr.com/2w1ljo : pour les pays, et le reste qui va suivre si tout va bien (formulaire n°2).



    Mes attentes :
    1 - J'aimerai pouvoir tout faire tenir sur un seul formulaire en utilisant plusieurs fois les ronds à cocher mais un coup pour les sources d'info et un coup pour les pays, sans que le choix de l'une ne vire la sélection que j'ai fais dans la précédente (j'aimerai pouvoir choisir ma source, figer le click dans le rond, et choisir mon pays, figer le clock dans le rond, à qu'à chaque fois, cela renseigne la bonne colonne.

    2 - Si 1- n'est pas possible, j'aimerai faire comprendre à la macro que une saisie (formulaire 1 et 2) vaut pour une ligne; la prochaine activation des formulaires voudra pour la ligne suivante uniquement, quelque soit la dernière cellule vide quelle quel soit (j'aimerai que chaque saisie soit propre à la ligne suivante, sans qu'il y ait un décalage d'une colonne à l'autre parce que "pays" est presque tout le temps renseignable mais que "feed rss" ne l'est pas systématiquement par exemple... donc j'aimerai que tout s’enchaîne ligne après ligne, et que s'il y a un blanc de saisie, qu'il y reste et soit ignoré, on remplit TOUJOURS ligne par ligne => il faudrait en gros que la macro détecte la dernière cellule non-vide sur une plage de colonne, et commence à rédiger sur la prochaine ligne en dessous.

    3 - J'aimerai que la macro remplisse le tableaux lorsque je clique sur le bouton et non lorsque je click sur la case ou le rond à cocher; de cette façon, tout s'inscrit uniquement lorsque le bouton général du formulaire est activé.

    4 - Enfin, certaines saisies vont renseigner plusieurs mot-clés, j'aimerai que ces mot-clés apparaissent les uns en dessous des autres et que la hauteur de la ligne s'ajuste en fonction du nombre de mot-clé inséré dans la cellule (sans passer par "ajustement automatique de la cellule").


    Merci beaucoup si vous pouvez m'aider ne serait-ce que sur un point...
    Respectueusement

  2. #2
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 28
    Par défaut
    alors j'ai trouvé une solution :

    http://prntscr.com/2w2by3

    Sa marche du tonnerre; dans les formulaires, je peux changer ma "coche", sa change dans la cellule tout seul automatique, que ce soit pour les "types de sources" et les "pays", ce qui permet aux gens de se tromper et de corriger sans que sa détruise tout.

    En revanche, les 2 colonnes sont calées sur ce que contient la colonne 3 (C:C). Tant que la colonne C est remplie à hauteur, il n'y a pas de soucis. J'ai donc rendu le renseignement du champs obligatoire :

    http://prntscr.com/2w2ctl

    Dorénavant, tout nouvel ajout se fera obligatoirement sur la ligne "ligne +1"; la seule cellule qui détermine la ligne, c'est la dernière non-vide de la colonne C, +1 (donc juste en dessous).
    Pas moyen d'erreur puisque on ne peut continuer la saisie si la source n'est pas insérée...

    Voici les macros :
    Formulaire 1 : http://prntscr.com/2w2dwa : la colonne de référence est toujours la n°3 car elle est obligatoire à remplir.
    Formulaire 2 : http://prntscr.com/2w2efc : la colonne n°3 est toujours la référence, et le restera pour tous mes champs à renseigner. Il ne fallait pas oublier le "-1" devant ligne, pour éviter qu'il ne complète la ligne du dessous (puisque naturellement, le formulaire 1 précède le formulaire 2; le 2 aurait alors détecté un résultat déjà en colonne n°3 et aurait écrit sur la ligne en dessous; le but est d'écrire sur une ligne et pas en escalier...)


    DU COUP, cela me laisse une seule question :

    Comment puis-je faire pour que toutes mes instructions soient exécutées lorsque j'appuis sur mes boutons d'activation (et non lorsque je coche les choix dans les formulaires ?) ?

    Merci par avance

  3. #3
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Salut,

    Déjà, je pense qu'il serait plus "propre" de définir dans ton code une variable "iNouvelleLigne" qui conserve le n° de ligne de ton nouvel enregistrement, plutôt que de le recalculer à chaque saisie...

    Ensuite, il te suffit de créer un "Sub ContrôleSaisie" qui sera appelé quand tu le désires (sur le clic du bouton "enregistrer" ou "suivant") et qui vérifiera que tes champs obligatoires sont bien remplis, et si c'est le cas, alimenteront ta feuille de calcul.

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2014
    Messages : 28
    Par défaut
    De cette façon, je peux "retenir" l'écriture des saisies jusqu'à ce que le "Sub controlesaisie" soit exécuté ?

    Super! Pas pensé à ça...


    Merci beaucoup à toi, Phil'oche, pour la réponse rapide !

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

Discussions similaires

  1. [XL-2007] Empêcher saisie doublon Ligne par Ligne
    Par borisp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2011, 11h37
  2. Parcourir un Db_GRID ligne par ligne
    Par sanosuke dans le forum Bases de données
    Réponses: 8
    Dernier message: 12/05/2008, 13h14
  3. [sous-formulaire] ligne par ligne
    Par fa310428 dans le forum IHM
    Réponses: 7
    Dernier message: 24/04/2007, 16h16
  4. aditionner les champs d'une table ligne par ligne
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/08/2005, 09h38

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