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 déroulante VBA


Sujet :

Macros et VBA Excel

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Ca veut toujours pas!! j'aimerai pouvoir te mettre mon travail en pièce jointe ms ça me ditq ue j'ai dépassé mon quotat!! comment on fait pour enlever les précédentes pièces jointes??

  2. #22
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    tu retourne sur le post ou tu as mis ton fichier tu edites et suprrime les piéces que tu as mises

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    merci voici le fichier

  4. #24
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    ici tu as oublié de mettre le bon nom de la feuille ou se trouve les données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Me.ComboBox1.ListIndex = 0 Then
    Me.Nom_Eleves.Clear
    For i = 2 To Range("A2").End(xlDown).Row
    Me.Nom_Eleves.AddItem (Sheets("Feuil1").Range("A" & i).Value)
    Next i
    normalement feuille "Classes"

    pour le bouton valider j'ai rectifé une partie à toi de faire le reste ok
    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
    Private Sub VALIDER_Click()
     
    If Me.ComboBox1.ListIndex = 0 Then
        vnom = Me.Nom_Eleves.Text
        'Je recherche le nom dans la colonne à modifier
        Set c = Sheets("Classes").Columns("A:A").Find(What:=vnom)
        'Si le nom existe alors on remplace le nom
        If Not c Is Nothing Then
        c.Value = Me.NOUVEAU_NOM.Value
        End If
     
     ElseIf Me.ComboBox1.ListIndex = 1 Then
     'ton code
     
     ElseIf Me.ComboBox1.ListIndex = 2 Then
    'ton code
     
     End if
    End sub

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    C'est bon je m'étais embrouillée en changeant la listbox par la combobox. merci!!!

    j'ai une autre question s'est au niveau de la suppression pour les matières tu supprimes la ligne entière mais pour lesnoms j'aimerai juste supprimer ce qu'il y a ds la cellule.
    Voici le début d'algo que j'ai fais, peux tu me dire ce qu'l faut mettre à la place de ce qui est en rouge. Merci beaucoup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub VALIDER_Click()
         If Me.ComboBox2.ListIndex = 0 Then
         vnom = Me.ComboBox1.Text
        Set c = Sheets("Classes").Columns("A:A").Find(What:=vnom)
        'Si le nom de l'élève existe alors on supprime ce qu'il y a ds la cellule
        If Not c Is Nothing Then
        c.EntireRow.Delete
          End If
    End Sub

  6. #26
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    je mettrais à la place de cecià voir

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup ms je peux pas voir si ça fonctionne car bien sûr ma liste déroulante ds noms ne fonctionnent pas!!! bon j'essai de pas me décourager ms les algos c'est très pointilleux!!!

    Combobox1 = liste déroulante des nos des éléves
    Combobox2 = liste déroulante des classes

    usf suppression éléve
    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
    Private Sub VALIDER_Click()
        If Me.ComboBox2.ListIndex = 0 Then
            vnom = Me.ComboBox1.Text
            'Je recherche le nom à supprimer dans la colonne A
            Set c = Sheets("Classes").Columns("A:A").Find(What:=vnom)
            'Si le nom de l'élève existe alors on supprime la ligne entière
            If Not c Is Nothing Then
            c.Delete
        End If
     
        ElseIf Me.ComboBox2.ListIndex = 1 Then
            vnom = Me.ComboBox1.Text
            'Je recherche le nom à supprimer dans la colonne A
            Set c = Sheets("Classes").Columns("B:B").Find(What:=vnom)
            'Si le nom de l'élève existe alors on supprime la ligne entière
            If Not c Is Nothing Then
            c.Delete
        End If
     
        ElseIf Me.ComboBox2.ListIndex = 1 Then
            vnom = Me.ComboBox1.Text
            'Je recherche le nom à supprimer dans la colonne A
            Set c = Sheets("Classes").Columns("C:C").Find(What:=vnom)
            'Si le nom de l'élève existe alors on supprime la ligne entière
            If Not c Is Nothing Then
            c.Delete
        End If
    End If
    End Sub
    USF modifiation éléve

    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
    Private Sub SUPPRIMER_Click()
        Unload Me
          With SUPPRESSION_ELEVES
    '********************************************
         'INITIALISATION DU MENU DEROULANT
    '********************************************
        .ComboBox2.AddItem "TS1"
        .ComboBox2.AddItem "TS2"
        .ComboBox2.AddItem "TS3"
    '*********************************************
         'INITIALISATION DU MENU DEROULANT
    '********************************************
        End With
      'Afficher le formulaire
      SUPPRESSION_ELEVES.Show
    End Sub

  8. #28
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    pour que ta liste déroulante des noms fonctionne il faut la lié avec la liste des classes. tu l'ai déjç fait avec les autres userform, pour celui ci c pareil.
    dans l'userform suppression_eleve il te faut un code comme cà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox2_Change()
    Dim i As Long
     
    If Me.ComboBox2.ListIndex = 0 Then
    'ETC....
    Ce code alimentera la combobox1 en fonction de la sélection du combobox2

    A+
    ps: Je dois sortir, rentrerai tard ce soir dsl, bon courage

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    C'est très gentil!! tu m'as beaucoup aidé merci
    Bonne soirée A+

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Je suis désolée de revenir t'embêter, il me manque plus qu'un usf pour avoir fini....

    1) J'aimerai pouvoir recopier les noms des matières sur l'useform à partir soit de la feuille 3 si TS1, soit la feuile 4 si TS2 ou soit la feuille 5 si TS3. Les noms des matières se trouvent pour chaque B1,C1,D1,... jusqu'à qu'il n'y en ai plus

    2) pour valider, les algos sont assez flou car il faut prendre en compte la classe(la feuille 3 ou 4 ou 5), les matieres (B1, C1, D1,...) et les éléves (A2,A3,...), je connais un algo qui vérifie qu'on ne tape pas n'importe quoi le pb c'est lorsqu'il faut préciser une feuille je sais pas comment faire car il faut prendre ous les critères du dessus!!

    Si tu peux m'aider ça serait géniall!!
    J'ai fait ça mais je sais que pratiquement tt est faux...

    Pour remplir la note d'un éléve :


    Sur usf note (la où on choisit si on veut rentrer une ou plusieurs notes)
    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
     
    NOTE_ELEVE = usf suivant
    UN_ELEVE = Combobox
     
     
     
    Private Sub UN_ELEVE_Click()
        Unload Me
        With NOTE_UN_ELEVE
    '*********************************************
         'INITIALISATION DU MENU DEROULANT
    '********************************************
    'Je boucle a partir de la cellule A2 jusque la dernière ligne pleine de la colonne A  de la feuille "Matieress"
    For i = 2 To Sheets("Matières").Range("A1").End(xlDown).Row
    'J'ajoute à la combobox les matières
    .MATIERE_CONCERNEE.AddItem (Sheets("Matières").Range("A" & i).Value)
            Next i
     
            'Combo box values are ListIndex values
            .MATIERE_CONCERNEE.BoundColumn = 0
            'Set combo box to first entry
            .MATIERE_CONCERNEE.ListIndex = 0
    End With
     
        With NOTE_UN_ELEVE
    '********************************************
         'INITIALISATION DU MENU DEROULANT
    '********************************************
        .classe_CONCERNEE.AddItem "TS1"
        .classe_CONCERNEE.AddItem "TS2"
        .classe_CONCERNEE.AddItem "TS3"
    '*********************************************
         'INITIALISATION DU MENU DEROULANT
    '********************************************
     End With
        NOTE_UN_ELEVE.Show
    End Sub
    USF Un_ELEVE

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub classe_CONCERNEE_Change()
    Dim i As Long
     
    If Me.classe_CONCERNEE.ListIndex = 0 Then
    Me.NOM.Clear
    For i = 2 To Range("A2").End(xlDown).Row
    Me.NOM.AddItem (Sheets("Feuil3").Range("A" & i).Value)
    Next i
     
    ElseIf Me.classe_CONCERNEE.ListIndex = 0 Then
    Me.NOM.Clear
    For i = 2 To Range("A2").End(xlDown).Row
    Me.NOM.AddItem (Sheets("Feuil4").Range("A" & i).Value)
    Next i
     
    ElseIf Me.classe_CONCERNEE.ListIndex = 0 Then
    Me.NOM.Clear
    For i = 2 To Range("A2").End(xlDown).Row
    Me.NOM.AddItem (Sheets("Feuil5").Range("A" & i).Value)
    Next i
     
    End If
    End Sub
    '**************************************************************************************
    Private Sub EXCEL_Click()
        Application.Visible = True
        'Activer feuille 1
        Worksheets(1).Activate
        'Fermer la fenêtre principale de Présentation
        Unload Me
    End Sub
    '**************************************************************************************
    Private Sub RETOUR_Click()
        Unload Me
        'Affiche le formulaire
        NOTES.Show
    End Sub
    '***************************************************************************************
    Private Sub VALIDER_Click()
    
    End Sub
    '***************************************************************************************
    '***************************************************************************************
    '********************* VERIFICATION DES CARACTERES TAPES *******************************
    '***************************************************************************************
    '***************************************************************************************
    'Cette fonction est appelée à chaque appui sur une touche dans :
    'Vérification si on écrit des lettres à la place des chiffres
    Private Sub TR_keyup(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    TR.SetFocus
    If TR.TextLength <> 0 Then
        If (Asc(Mid(TR.Value, TR.TextLength, 1))) <> 44 And ((Asc(Mid(TR.Value, TR.TextLength, 1)) < 48) Or (Asc(Mid(TR.TextLength, 1)) > 57)) Then
        MsgBox ("Caractère invalide")
        TR.Value = Feuil5.Cells(36, 4)    End If
    End If
    End Sub

  11. #31
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bjr, dsl beaucoup de mal à suivre aujourd'hui .

    si j'ai compris tu souhaite alimenter ton combobox matières à partir des intitulé de colonne des feuilles notes de chaque classe c'est çà?
    Pourquoi pas directement à partir de la feuille matière?

    remarque, il me semble que tu devais rendre ton devoir aujourd'hui donc je reviens un peu tard mais pour l'exemple voici un code qui te permet de copié le nom des matières dans chaque colonne de la feuille notes.
    j'ai vu que tu avais liée ces cellules mais que ce passe -t-il si tu supprime une matière?

    Edit: j'ai oublié le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim plagederecherche As Range, i As Long, c As Range
    Set plagederecherche = Sheets("Matières").Range("A2:A" & Range("A65356").End(xlUp).Row)
    i = 2
    With Sheets("Matières")
    For Each c In plagederecherche
     If c.Value <> "" Then
      Sheets("Notes").Cells(1, i).Value = c.Value
      i = i + 1
     End If
    Next c
    End With
    vois comment tu peux t'en servir pour répondre a ta question 1

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Merci, le problème c'est que j'ai trois feuilles excel! faut il que je mette des elseif???

    1 feuille ts1
    1 feuilles ts2
    1 feuille ts3

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    rv mm si j'ai rendu mon programme j'aimerai bien voir les algo qu'il fallait pour que la prochaine fois je sache le faire.. si ça ne te dérange pas de continuer à m'aider...

  14. #34
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, dsl j'étais tres occupé ces derniers jours pas vraiment eu le temps.
    Le code que je t'ai donné précédemment permettait de copié les matières dans une feuille appellée notes.
    Apparemment tu as trois feuilles appellées "Notes TS1" etc...
    donc en adaptant le code que je t'avais mis l'autre jour tu aurais pu mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim plagederecherche As Range, c As Range
    Dim i As Long, x As Long
    Set plagederecherche = Sheets("Matières").Range("A2:A" & Range("A65356").End(xlUp).Row)
    With Sheets("Matières")
     For x = 1 To 3
      i = 2
       For Each c In plagederecherche
        If c.Value <> "" Then
         Sheets("Notes TS" & x).Cells(1, i).Value = c.Value
         i = i + 1
        End If
       Next c
     Next x
    End With
    .

    Je t'encourage à faire quelques recherche sur l'utilisation des boucles "For ... To" ou "For ... Each", tu trouveras de nombreux exemples sur ce forum.

Discussions similaires

  1. liste déroulante vba
    Par arbotch dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2010, 16h23
  2. Copier des cellules excel dans une liste déroulante vba
    Par Papillon34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2010, 16h03
  3. [XL-2003] Liste Déroulante VBA EXCEL 2003
    Par Alexandra 01 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/12/2009, 15h55
  4. Mettre nom table dans liste déroulante vba Excel
    Par Fred246 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/12/2009, 08h20
  5. Liste déroulante VBA
    Par GMmaurice dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 15h33

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