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 :

saisie rapide dans comboBox [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut saisie rapide dans comboBox
    Bonjour,
    J' elabore en ce moment un userform et je suis confronte a un probleme de saise automatique dans une combobox.En effet ,a terme cette derniere devrait accueillir une liste de 1000 reference.
    D'autre part ,lorsque les données d'une textbox contenant des données numeriques sont exporteés vers une feuille ,celles ci se retrouvent en format texte
    Ci joint fichier exemple
    Merci pour votre aide
    Cordialement
    Lascap59
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Option Explicit
    Private Sub InitialiseCombo()
    Dim i As Integer
     
    With Me.ComboBox1
       .ColumnCount = 2
       .ColumnWidths = "50;0"
    End With
    With Me.ComboBox2
       .ColumnCount = 2
       .ColumnWidths = "50;0"
    End With
    With Sheets("liste")
       For i = 1 To .Range("a65536").End(xlUp).Row
          Me.ComboBox1.AddItem
          Me.ComboBox1.List(Me.ComboBox1.ListCount - 1, 0) = .Cells(i, 2)
          Me.ComboBox1.List(Me.ComboBox1.ListCount - 1, 1) = i
          Me.ComboBox2.AddItem
          Me.ComboBox2.List(Me.ComboBox2.ListCount - 1, 0) = .Cells(i, 1)
          Me.ComboBox2.List(Me.ComboBox2.ListCount - 1, 1) = i
       Next i
    End With
    End Sub
     
    Private Sub UserForm_Initialize()
    Me.Site = Sheets("liste").Range("D1").Value
    InitialiseCombo
    End Sub
     
    Private Sub ComboBox1_Change()
    Dim i As Byte
    With Me.ComboBox1
       For i = 1 To 3
          Me.Controls("TextBox" & i) = Sheets("liste").Cells(.List(.ListIndex, 1), i)
       Next i
    End With
    With Me.Quantite1
       .SetFocus
       .Text = ""
    End With
    End Sub
     
    Private Sub ComboBox2_Change()
    Dim i As Integer
    i = Me.ComboBox2.ListIndex + 1
    Me.TextBox4 = Sheets("liste").Range("B" & i)
    End Sub
     
    Private Sub Quantite1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8) Then KeyAscii = 0
    End Sub
     
    Private Sub Quantite1_Change()
    Me.Total1.Value = Val(Me.Quantite1.Value) * Val(Me.TextBox3.Value)
    End Sub
     
    Private Sub TextBox3_Change()
    Me.TextBox3.Value = Format(Me.TextBox3.Value, "# ##0.00 € ")
    Me.Total1.Value = Val(Me.Quantite1.Value) * Val(TextBox3.Value)
    End Sub
     
    Private Sub Total1_Change()
    If Val(Me.Total1.Value) = 0 Then
       Me.Total1.Value = ""
    Else
       Me.Total1.Value = Format(Me.Total1.Value, "# ##0.00 €")
    End If
    End Sub
     
    Private Sub Total1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = 0
    End Sub
     
    Private Sub Valider_Click()
    Dim NewLig As Long
     
    If Me.TextBox1 = "" Then Exit Sub   'si la TextBox1 est vide sort de la procédure
    If Val(Me.Quantite1.Value) = 0 Then
       MsgBox "Veuillez saisir une quantité SVP! "
       Me.Quantite1.SetFocus
    Else
       With Sheets("données")
          NewLig = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
          .Range("B" & NewLig).Value = Me.TextBox1.Value
          .Range("C" & NewLig).Value = Me.TextBox2.Value
          With .Range("D" & NewLig)
             .Value = Me.TextBox3.Value
             .NumberFormat = "# ##0.00 €"
          End With
          .Range("E" & NewLig).Value = Date
          .Range("F" & NewLig).Value = Month(Date)
          .Range("G" & NewLig).Value = Me.Site.Value
          .Range("H" & NewLig).Value = Val(Me.Quantite1.Value)
          With .Range("J" & NewLig)
             .Value = Val(Me.Total1.Value)
             .NumberFormat = "# ##0.00 €"
          End With
       End With
       Me.ListBox1.AddItem Me.TextBox1.Value
    End If
    End Sub
     
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut
    [Grillé]En plus j'avais mal regardé les format utilisé dans le code[/Grillé]
    Citation Envoyé par lascap59 Voir le message
    J'elabore en ce moment un userform et je suis confronte a un probleme de saise automatique dans une combobox.En effet ,a terme cette derniere devrait accueillir une liste de 1000 reference.
    Et la question est?

    Citation Envoyé par lascap59 Voir le message
    D'autre part ,lorsque les données d'une textbox contenant des données numeriques sont exporteés vers une feuille ,celles ci se retrouvent en format texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Offset(0, 1).Value = CInt(TextBox1.Text)
    ActiveCell.Offset(0, 1).NumberFormat = "0"
    Par contre je serais toi, j'utiliserais plutôt le nom de la feuille et celui de la cellule sur laquelle tu veux travailler à la place d'activecell.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheet("FEuil1").Range("A2").Offset(0, 1).Value = CInt(TextBox1.Text)
    ++
    Qwaz

    Ps: Même si je demande souvent un fichier exemple, des explications complètes sont quand même ,appréciable. Et pour info, il est contraire aux règles du forum de placer un fichier dés l'ouverture d'une conversation.

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    de toutes façons, le fichier exemple ne doit être fourni que sur demande des autres membres ayant participé à la discussion. Règle générale, une explication claire du problème incluant une question, idéalement, et un bout de code fautif est largement suffisant.

    prière de lire la directive concernant les fichiers joints.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut
    [Grillé]En plus j'avais mal regardé les format utilisé dans le code[/Grillé]

    Et la question est?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Offset(0, 1).Value = CInt(TextBox1.Text)
    ActiveCell.Offset(0, 1).NumberFormat = "0"
    Par contre je serais toi, j'utiliserais plutôt le nom de la feuille et celui de la cellule sur laquelle tu veux travailler à la place d'activecell.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheet("FEuil1").Range("A2").Offset(0, 1).Value = CInt(TextBox1.Text)
    ++
    Qwaz

    Ps: Même si je demande souvent un fichier exemple, des explications complètes sont quand même ,appréciable. Et pour info, il est contraire aux règles du forum de placer un fichier dés l'ouverture d'une conversation.
    merci beaucoup de votre aide
    Lascap59

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

Discussions similaires

  1. [XL-2007] Controle de saisie dans combobox
    Par Gestionnaire_rh dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2011, 15h33
  2. Réponses: 4
    Dernier message: 12/02/2011, 17h36
  3. Saisie rapide dans combobox
    Par mirza dans le forum IHM
    Réponses: 1
    Dernier message: 11/07/2008, 18h45
  4. pre-saisie dans combobox ou textbox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2008, 18h21
  5. Saisie semi-automatique dans combobox
    Par method_man dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 04/04/2007, 16h11

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