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 :

rafraichir un listbox apres une entré via un bouton [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    independant
    Inscrit en
    Janvier 2015
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 47
    Points : 42
    Points
    42
    Par défaut rafraichir un listbox apres une entré via un bouton
    tournois250_essaie.xlsm

    Bonjour a tous,

    j ai fait un userform nommé "tour_1" dans le quel il y a un bouton nommé "billard".

    le bouton ajoute des données en "D", suivant un calcul....

    Voici mon problème, je n'arrive pas a faire en sorte que quand je clic sur le bouton billard et que les données s'ajoute, ma listbox ajoute aussi les données. au final je ne voudrais travail qu'avec des userform dans mon projet, donc mes cellule serai "invisible".. ;

    j ai essayé biensur, en mettrant un rowsource, mais si je fait cela ca fait bugger..... help please

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    Lie donc ta listbox à la plage concernée
    Utilise à cette fin la propriété RowSource de ta listbox et modifie_la à chaque ajout de cellules
    Et ta listbox sera ainsi mise à jour automatiquement.

    PS : mais je vois que tu as essayé, mais pas réussi.
    Montre donc ton code d'essai. Il nous permettra de voir quelles sont les cellules concernées et de corriger en connaissance de cause
    (je n'ouvre jamais un classeur tiers et ne télécharge donc pas ta pièce jointe).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre du Club
    Femme Profil pro
    independant
    Inscrit en
    Janvier 2015
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 47
    Points : 42
    Points
    42
    Par défaut
    merci pour ta reponsse,

    j ai deja essayé le fait de mettre le roxsorce, que se soit sur la listbox, ou dans le code, ca fonctionne, mais ca me fait bugger autre chose....

    voici le code en entier :

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    Dim nbCol, pointeur, ligne
    Dim bd, f
     
     
     
    Private Sub CommandButton1_Click()
      Dim l As Integer
      l = Range("D" & Rows.Count).End(xlUp).Row + 1
     
     
      Range("D" & l) = Application.WorksheetFunction.Sum(Sheets("Select billard").Range("F1"))
    End Sub
     
    Private Sub UserForm_Activate()
    Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
    End Sub
     
     
    Private Sub Pièce_Change()
    Pièce.Value = UCase(Pièce.Value) ' obliger la majuscule a l'encodage
    End Sub
     
    Private Sub TextBox1_Change()
    TextBox1.Value = UCase(TextBox1.Value) ' obliger la majuscule a l'encodage
    End Sub
     
    Private Sub UserForm_Initialize()
     
      Set f = Sheets("Tournois")
      Set d = CreateObject("Scripting.Dictionary")
      Set bd = f.Range("A2:H" & f.[A65000].End(xlUp).Row) ' change l emplacement de la recherche
      For i = 10 To bd.Rows.Count
        If bd.Cells(i, 1) <> "" Then d(bd.Cells(i, 1).Value) = ""
      Next i
      temp = d.keys
      'Call Tri(temp, LBound(temp), UBound(temp))
      'Me.TextBox1 = temp
      Me.ZoneRec.List = bd.Value
      For k = 1 To 18: Me("label" & k).Caption = f.Cells(9, k): Next k
     
    Numero = Sheets("Tournois").Cells(2, 3)
    TextBox1 = Sheets("Tournois").Cells(2, 1)
    TextBox2 = Sheets("Tournois").Cells(2, 4)
    Libellé = Sheets("Tournois").Cells(2, 5)
    Pièce = Sheets("Tournois").Cells(2, 6)
     
        'ListBox2.RowSource = "Tournois!A4:D44"
        ZoneRec.ColumnWidths = "40;20;50;50"
     
     
     
    End Sub
     
     
     
    Private Sub B_ok_Click()
       Dim a()
       n = Application.CountIf(Application.Index(bd, , 1), Me.MotCle)
       ReDim a(1 To n, 1 To bd.Columns.Count)
        ligne = 0
       For i = 10 To bd.Rows.Count
         If bd.Cells(i, 1) = Me.MotCle Then
           ligne = ligne + 1
           For k = 1 To bd.Columns.Count: a(ligne, k) = bd.Cells(i, k): Next k
          End If
       Next i
       Me.ZoneRec.List = a()
    End Sub
     
     
    Private Sub b_tout_Click()
      Me.ZoneRec.Clear
      For i = 10 To f.[A65000].End(xlUp).Row
          Me.ZoneRec.AddItem
          Me.ZoneRec.List(i - 10, 0) = f.Cells(i, 1)
          Me.ZoneRec.List(i - 10, 1) = i
       Next
       pointeur = 0
       ligne = Me.ZoneRec.List(pointeur, 1)
       affiche
    End Sub
     
    Private Sub ZoneRec_Click()
     
        ligne = ZoneRec.ListIndex + 2
     
        Numero = Sheets("Tournois").Cells(ligne, 3)
        TextBox1 = Sheets("Tournois").Cells(ligne, 1)
        TextBox2 = Sheets("Tournois").Cells(ligne, 4)
        Libellé = Sheets("Tournois").Cells(ligne, 5)
        Pièce = Sheets("Tournois").Cells(ligne, 6)
     
     
      'ligne = Me.ZoneRec.Column(1)
      'pointeur = Me.ZoneRec.ListIndex
      'affiche
    End Sub
    Private Sub b_suiv_Click()
     If pointeur < Me.ZoneRec.ListCount - 1 Then
       pointeur = pointeur + 1
       ligne = Me.ZoneRec.List(pointeur, 1)
       affiche
     End If
    End Sub
    Private Sub b_prec_Click()
     If pointeur > 0 Then
       pointeur = pointeur - 1
       ligne = Me.ZoneRec.List(pointeur, 1)
       affiche
     End If
    End Sub
    Private Sub b_premier_Click()
       pointeur = 0
       ligne = Me.ZoneRec.List(pointeur, 1)
       affiche
    End Sub
    Private Sub b_dernier_Click()
       pointeur = Me.ZoneRec.ListCount - 1
       ligne = Me.ZoneRec.List(pointeur, 1)
       affiche
    End Sub
     
    Sub affiche()
      For i = 10 To nbCol:
     
    Numero.Value = f.Cells(ligne, 3)
    TextBox1.Value = f.Cells(ligne, 1)
    TextBox2.Value = f.Cells(ligne, 4)
    Libellé.Value = f.Cells(ligne, 5)
    Pièce.Value = f.Cells(ligne, 6)
     
      Next i
    End Sub
     
    Private Sub Annuler_Click()
    Tour_1.Hide
    End Sub
     
    Private Sub Modifier_Click()
     
    Sheets("Tournois").Cells(ligne, 3) = Numero
    Sheets("Tournois").Cells(ligne, 1) = TextBox1
    Sheets("Tournois").Cells(ligne, 4) = TextBox2
    Sheets("Tournois").Cells(ligne, 5) = Libellé
    Sheets("Tournois").Cells(ligne, 6) = Pièce
     
     
     'MsgBox "La base de donnée a bien été modifier "
    End Sub

    le cde rowsource:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
    Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
    End Sub

    mais depuis ce code, je n'arrive plus a ce qu il prenne en compte ce bouton la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Modifier_Click()
     
    Sheets("Tournois").Cells(ligne, 3) = Numero
    Sheets("Tournois").Cells(ligne, 1) = TextBox1
    Sheets("Tournois").Cells(ligne, 4) = TextBox2
    Sheets("Tournois").Cells(ligne, 5) = Libellé
    Sheets("Tournois").Cells(ligne, 6) = Pièce
     
     
     'MsgBox "La base de donnée a bien été modifier "
    End Sub
    alors qu'il fonctionais avant....

  4. #4
    Membre du Club
    Femme Profil pro
    independant
    Inscrit en
    Janvier 2015
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 47
    Points : 42
    Points
    42
    Par défaut
    En fait, apres une nuit de sommeil.... lol

    j ai trouver.... il fallais simplement faire changer que le textbox "ou il peu y avoir le changement" donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton3_Click()
     
    Sheets("Tournois").Cells(ligne, 5) = Libellé.Value
     
    Me.ZoneRec.RowSource = Range("A2:E2", Range("A65000").End(xlUp)).Address
    End Sub
    a la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sheets("Tournois").Cells(ligne, 3) = Numero
    Sheets("Tournois").Cells(ligne, 1) = TextBox1
    Sheets("Tournois").Cells(ligne, 4) = TextBox2
    Sheets("Tournois").Cells(ligne, 5) = Libellé
    Sheets("Tournois").Cells(ligne, 6) = Pièce
     
     
     'MsgBox "La base de donnée a bien été modifier "
    End Sub
    mais merci

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

Discussions similaires

  1. [MySQL] Insérer une entrée via une variable JS
    Par splootch dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/11/2015, 10h32
  2. Partager une photo via un bouton ?
    Par dorian53 dans le forum APIs Réseaux sociaux
    Réponses: 0
    Dernier message: 07/04/2013, 12h47
  3. un lien d'aprés une entrés dans une table
    Par gastoncs dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2009, 23h29
  4. Ouvrir une fenêtre via un bouton
    Par asco5 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 05/08/2008, 00h07
  5. Réponses: 17
    Dernier message: 02/02/2006, 22h31

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