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 :

garder dans la combobox la dernière valeur choisie


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut garder dans la combobox la dernière valeur choisie
    Bjr
    Débutant en vba j'ai créé un formulaire de saisie en vba excel pour enrichir une base de donnée (date, opérateur, ligne de production ,référence, etc). A l'ouverture du formulaire l'opérateur de saisie a 6 champs a renseigner dont 3 combobox. Afin de lui faire gagner du temps lors de la saisie je chercher a ce que les combobox gardent affichées la dernière valeur saisie. Comme ca lors la saisie suivante si des info a saisir sont identiques il peut sauter la combobox concerné, sinon il affiche le menu déroulant.

    Merci d'avance
    Franck

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Soit tu sauvegardes les valeurs de tes combobox sur des variables globales lors du click du bouton soit sur une feuille masquée. Il te suffit à l'ouverture de ta combobox sur l'initialize après avoir rempli tes combobox de mettre les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    combobox1 = Sheets("Feuillecachée").range("A1")
    combobox1 = variableglobale

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci de ta réponse rapide mais en tant que débutant je ne sais pas trop ou placer le code que tu m'a donné.
    Ci-dessous l'ensemble du codage que j'ai fais.

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Private Sub ajouter_Click()
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim n As Integer
     
        If ajoutclient.jour = "" Or ajoutclient.operateur = "" Or ajoutclient.poste = "" Or ajoutclient.reference = "" Or ajoutclient.temps_production = "" Or ajoutclient.quantite = "" Then
     
            MsgBox "merci de remplir tout les champs"
            Else
            i = 2
            Do While Cells(i, 1) <> ""
            Cells(i, 1).Offset(1, 0).Select
            i = i + 1
     
            Loop
     
            ActiveCell.Value = ajoutclient.jour.Value
            ActiveCell.Offset(0, 1).Value = ajoutclient.operateur.Value
            ActiveCell.Offset(0, 2).Value = ajoutclient.poste.Value
            ActiveCell.Offset(0, 3).Value = ajoutclient.reference.Value
            ActiveCell.Offset(0, 4).Value = ajoutclient.temps_production.Value
            ActiveCell.Offset(0, 5).Value = ajoutclient.quantite.Value
     
            Unload ajoutclient
            End If
     
    End Sub
     
    Private Sub annuler_Click()
    ajoutclient.Hide
    End Sub
     
     
    Private Sub Image1_Click()
     
    End Sub
     
    Private Sub jour_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
     
    End Sub
     
    Private Sub Label5_Click()
     
    End Sub
     
    Private Sub Label7_Click()
     
    End Sub
     
    Private Sub operateur_Change()
     
     
    End Sub
     
    Private Sub UserForm_Initialize()
        Dim i As Integer
        i = 1
        Do While Worksheets("postes").Cells(i, 1) <> ""
            poste.AddItem Worksheets("postes").Cells(i, 1)
            i = i + 1
            Loop
     
           Dim j As Integer
        j = 1
        Do While Worksheets("references").Cells(j, 1) <> ""
            reference.AddItem Worksheets("references").Cells(j, 1)
            j = j + 1
            Loop
     
           Dim k As Integer
        k = 1
        Do While Worksheets("operateurs").Cells(k, 1) <> ""
            operateur.AddItem Worksheets("operateurs").Cells(k, 1)
            k = k + 1
            Loop
     
    End Sub
    Merci de votre aide
    Franck

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Ce code n'a pas été fait par toi si tu es incapable de faire quelque chose d'aussi simple que de sauvegarder une variable et la remettre à l'initialisation.

    Bonne chance.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je suis partie de 2 tuto you tube (un de 9 minutes et un de 13 minutes) avec un formulaire a 3 champs et je l'ai adapté a mes besoins

    Merci

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Tu crées une feuille que tu vas appeler Feuillecachée

    En supposant que tes trois combobox sont :

    operateur
    poste
    reference

    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
    Private Sub ajouter_Click()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim n As Integer
     
    If ajoutclient.jour = "" Or ajoutclient.operateur = "" Or ajoutclient.poste = "" Or ajoutclient.reference = "" Or ajoutclient.temps_production = "" Or ajoutclient.quantite = "" Then
     
    MsgBox "merci de remplir tout les champs"
    Else
    i = 2
    Do While Cells(i, 1) <> ""
    Cells(i, 1).Offset(1, 0).Select
    i = i + 1
     
    Loop
     
    ActiveCell.Value = ajoutclient.jour.Value
    ActiveCell.Offset(0, 1).Value = ajoutclient.operateur.Value
    ActiveCell.Offset(0, 2).Value = ajoutclient.poste.Value
    ActiveCell.Offset(0, 3).Value = ajoutclient.reference.Value
    ActiveCell.Offset(0, 4).Value = ajoutclient.temps_production.Value
    ActiveCell.Offset(0, 5).Value = ajoutclient.quantite.Value
     
    Unload ajoutclient
    End If
     
    Sheets("Feuillecachée").range("A1") = ajoutclient.operateur.Value
    Sheets("Feuillecachée").range("A2") = ajoutclient.poste.Value
    Sheets("Feuillecachée").range("A3") = ajoutclient.reference.Value
     
    End Sub

    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
    Private Sub UserForm_Initialize()
    Dim i As Integer
    i = 1
    Do While Worksheets("postes").Cells(i, 1) <> ""
    poste.AddItem Worksheets("postes").Cells(i, 1)
    i = i + 1
    Loop
     
    Dim j As Integer
    j = 1
    Do While Worksheets("references").Cells(j, 1) <> ""
    reference.AddItem Worksheets("references").Cells(j, 1)
    j = j + 1
    Loop
     
    Dim k As Integer
    k = 1
    Do While Worksheets("operateurs").Cells(k, 1) <> ""
    operateur.AddItem Worksheets("operateurs").Cells(k, 1)
    k = k + 1
    Loop
     
     ajoutclient.operateur.Value =Sheets("Feuillecachée").range("A1") 
     ajoutclient.poste.Value = Sheets("Feuillecachée").range("A2") 
    ajoutclient.reference.Value= Sheets("Feuillecachée").range("A3") 
    End Sub

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/01/2011, 14h48
  2. [PPT-2007] Insérer un combobox, sauvegarder la valeur choisie
    Par Aiacciu dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 12/07/2009, 22h00
  3. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  4. Garder la dernière donnée selectionnée dans une Combobox
    Par jacqaug dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/09/2008, 15h44
  5. Rendre inactive une combobox selon la valeur choisie dans une 1er combobox
    Par The Molo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/12/2007, 13h34

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