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 :

Saisir des notes à une liste de membres [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut Saisir des notes à une liste de membres
    Bonjour,

    Je souhaite donner une note à plusieurs membres d'un club de sport en fonction de leur activité et de leur nom.

    En soit, sont saisies à la main (ou plus tard via un formulaire) une liste de membres et d'activité comme suit => http://prntscr.com/6oehxx
    (je ne démarre pas de la bonne ligne ici, mais c'est à titre d'exemple ne pouvant vous lister les réels membres)

    Via un formulaire, je souhaite :
    - saisir les notes dans un premier temps pour un seul membre (et l'année de notation) (donc en validant via un bouton "valider" le formulaire remplit la ligne souhaitée et se ferme)
    - ou saisir plusieurs membres (dans ce cas je crée un bouton "next" sur lequel je cliquerai tant que je n'aurai pas fini de saisir toutes mes notes.
    - si c'est possible, quand je tape next, que n'apparaisse plus dans ma liste de membres le nom prénom du membre que je viens déjà de saisir.

    J'ai dans l'ordre crée une liste (j'ai 40 membres, mais j'ai fais une liste allant de la ligne 3 à la ligne 228 (en prévision) appelée "Membres"), ensuite j'ai récupéré en VB la liste des membres en demandant à ce que les valeurs nulles ne figurent pas dans la liste, mais je ne sais pas comment faire pour que chaque note s'enregistre bien à la bonne ligne pour la personne souhaitée.

    Voici un screen d'où j'en suis actuellement rendu : http://prntscr.com/6oeflu
    Mes tests de "Range" ne sont bien entendu pas bons, mais c'est pour présenter un peu ce que je voudrais faire, le button 3 = valider, le 2 = annuler (au cas où).

    J'ai beau chercher partout sur la toile, je ne trouve pas la réponse à mon problème

    Merci d'avance à la/les personne en mesure de m'aider.

    Cordialement,
    Marounda

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    CommandButton3 sert toujours à envoyé les données dans les cellules
    CommandButton4 = (bouton next) sert seulement à passer au suivant qui n'est pas remplis. il faut envoyé les données avec bouton3
    Bouton4 passera au suivant qui manque au moins un champ de pas complété.

    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
    38
    39
    40
    41
    Private Sub CommandButton3_Click()
     
    If ComboBox1.Text = "" Then
        MsgBox "il faut choisir un nom"
        Exit Sub
    End If
    For i = 3 To Range("B" & Rows.Count).End(xlUp).Row
     
        If ComboBox1.Text = Cells(i, 2).Value Then
            Cells(i, 5).Value = textbox3.Text
            Cells(i, 6).Value = textbox4.Text
            Cells(i, 7).Value = textbox5.Text
            Cells(i, 8).Value = textbox6.Text
            Cells(i, 9).Value = textbox7.Text
            Exit For
        End If
     
    Next
     
    End Sub
     
    Private Sub CommandButton4_Click()
    'pour bouton next
     
    For i = 3 To Range("B" & Rows.Count).End(xlUp).Row
     
            If Cells(i, 5).Value = "" Or Cells(i, 6).Value = "" Or Cells(i, 7).Value = "" Or _
            Cells(i, 8).Value = "" Or Cells(i, 9).Value = "" Then
                'si il manque une donnée on récupère les autres
                ComboBox1.Text = Cells(i, 2).Value
                textbox3.Text = Cells(i, 5).Value
                textbox4.Text = Cells(i, 6).Value
                textbox5.Text = Cells(i, 7).Value
                textbox6.Text = Cells(i, 8).Value
                textbox7.Text = Cells(i, 9).Value
                Exit For
            End If
        msgbox "les champs ont été tous remplis"
    Next
     
    End Sub
    pour charger données à partir du combobox
    ceci permettra de changer les données même si il sont remplis
    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
    Private Sub ComboBox1_Change()
     
    textbox3.Text = ""
    textbox4.Text = ""
    textbox5.Text = ""
    textbox6.Text = ""
    textbox7.Text = ""
     
    For i = 3 To Range("B" & Rows.Count).End(xlUp).Row
     
        If ComboBox1.Text = Cells(i, 2).Value Then
            textbox3.Text = Cells(i, 5).Value
            textbox4.Text = Cells(i, 6).Value
            textbox5.Text = Cells(i, 7).Value
            textbox6.Text = Cells(i, 8).Value
            textbox7.Text = Cells(i, 9).Value
            Exit For
        End If
    Next
     
    End Sub

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    Bonjour gnain,

    Un très grand merci car ce que tu m'as proposé fonctionne très bien (bien entendu tu me diras), par contre j'avais mal saisi ce qui m'avait été demandé de faire (je donne un coup de main bénévole à un petit club) et il s'avère que j'ai du tourner ainsi le formulaire : http://prntscr.com/6ojc1j
    Chose que bien entendu je n'aurais su faire sans ton aide, même si je suis désolé que tu te sois ennuyé à répondre à ma requête finalement erronée.

    J'ai normalement apporté grâce à toi une aide plus complète que ce qui m'avait été demandé "il me faudrait une maccro qui me renvoi à la ligne de la gymnaste en fonction de son numéro afin que je n'ai pas à la rechercher dans toute la liste", liste qui d'ailleurs sera à priori proche des 250 pour un concours inter-clubs.

    Si tu vois quelque chose d'incorrect dans mon code, n'hésite pas à me le faire savoir !

    Un très grand merci et au plaisir

    Cordialement,
    Marounda

  4. #4
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    dans ton commandbutton2 (bouton suivant) ton textbox1 n'est pas incrémenter
    il faderait mettre au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox1.text = textbox1.text + 1

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    Et c'est dans quel but qu'il faut incrémenter ainsi svp ?

  6. #6
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    ton bouton suivant sert à valider et à vider les textbox ??
    tu as déjà un bouton valider.
    moi ce que j'aurais fait sur le bouton suivant est d'incrémenter textbox1 et aller chercher
    les données du suivant.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    Ah ok, désolé je ne suis pas un as, donc je comprends pas toujours tout.
    Le truc c'est que finalement ils ne rempliront pas forcément les notes pour chaque adhérente une par une dans l'ordre.

    Merci pour tout en tout cas !

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

Discussions similaires

  1. Ajouter des éléments à une liste
    Par hassen07 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2010, 18h42
  2. passer des info (une liste d'objets) de page en page
    Par andtwoturtles dans le forum Django
    Réponses: 3
    Dernier message: 13/03/2010, 19h04
  3. Permissions attribuées en fonction d'une liste de membre
    Par neo.96 dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/07/2009, 17h33
  4. ajouter des valeurs à une liste déroulante
    Par Simon2 dans le forum IHM
    Réponses: 3
    Dernier message: 30/07/2007, 23h59
  5. Réponses: 3
    Dernier message: 17/08/2006, 11h30

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