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 :

Controle de saisie 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
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut Controle de saisie dans combobox
    Bonjour le forum

    je travail sur usf qui sera normalement utiliser pour la saisie des etats de présences journaliers, mais je bloque sur un pb qui se résume en un message (erreur d'exécution 1004:erreur définie par l'application ou par l'objet),il apparaisse suite a une erreur de saisie de l'utilisateur dans cbb qui est alimenter par la premiere colonne , voici le code:

    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 combobox2_change()
    If ComboBox2.Value = "" Then Exit Sub
    If ComboBox2.ListIndex <> -1 Then cells(ComboBox2.ListIndex + 1, 1).Select
    With sheets("01")
                Me.TextBox2 = .cells(Me.ComboBox2.ListIndex + 1, 2)
                Me.TextBox3 = .cells(Me.ComboBox2.ListIndex + 1, 3)
                Me.TextBox4 = .cells(Me.ComboBox2.ListIndex + 1, 4)
                Me.TextBox5 = .cells(Me.ComboBox2.ListIndex + 1, 5)
                Me.TextBox6 = .cells(Me.ComboBox2.ListIndex + 1, 6)
                Me.TextBox7 = .cells(Me.ComboBox2.ListIndex + 1, 7)
                Me.TextBox8 = .cells(Me.ComboBox2.ListIndex + 1, 8)
                Me.TextBox9 = .cells(Me.ComboBox2.ListIndex + 1, 9)
                Me.TextBox10 = .cells(Me.ComboBox2.ListIndex + 1, 10)
                Me.TextBox11 = .cells(Me.ComboBox2.ListIndex + 1, 11)
    End With
    End Sub
    Merci pour toute aide!

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour le forum, Gestionnaire_rh

    essayes comme ça : "listindex" et non "listendex"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub combobox2_change()
    Dim x As Integer
    If ComboBox2.Value = "" Then Exit Sub
    If ComboBox2.ListIndex <> -1 Then Cells(ComboBox2.ListIndex + 1, 1).Select
    With Sheets("01")
       For x = 2 To 11
          Me.Controls("TextBox" & x) = .Cells(Me.ComboBox2.ListIndex + 1, x)
       Next x
    End With
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut
    Bonjour casefayere

    je vous remercie pour votre réponse, mais ça plante toujours et malgré que je suis débutant en vba je sais que ce message ne provient pas du code mais si l'utilisateur tape un matricule du salarié inexistant ds la colonne A.
    j'ai essaie de rajouter ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If ComboBox2.ListIndex = -1 Then MsgBox "verifier votre saisie"
    combobox2.setfocus
    mais sa marche toujours pas

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub combobox2_change()
    Dim x As Integer
    If ComboBox2.Value = "" Then Exit Sub'je vois pas tres bien a quoi ca sert
     
    If ComboBox2.ListIndex <> -1 Then Cells(ComboBox2.ListIndex + 1, 1).Select
    'tu viens de selectionner une cellule mais on ne sais pas quel sheet
     
    With Sheets("01")'s'appelle t il vraiment "01 ton sheet
       For x = 2 To 11
          Me.Controls("TextBox" & x) = .Cells(Me.ComboBox2.ListIndex + 1, x)
       Next x
    End With
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub combobox2_change()
    Dim x As Integer
    If ComboBox2.Value = "" Then Exit Sub 'je vois pas tres bien a quoi ca sert
     
    If ComboBox2.ListIndex <> -1 Then sheets("nom du sheet").Cells(ComboBox2.ListIndex + 1, 1).Select
    With Sheets(1)   
    For x = 2 To 11
          Me.Controls("TextBox" & x) = .Cells(Me.ComboBox2.ListIndex + 1, x)
       Next x
    End With
    End Sub
    [/CODE]

    ensuite j'aurais mis tout ca dans le clik de la combo moi puisque change peut etre interprété meme au remplissage de la combo



    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 205
    Par défaut
    Salut patricktoulon

    je t'informe que je ne suis qu'un débutant en vba, alors il faut allez doucement, je confirme ta premiere remarque mais pour la seconde je ne peux rajouter ta suggestion: If ComboBox2.ListIndex <> -1 Then sheets("01").cells(ComboBox2.ListIndex + 1, 1).Select
    car je vais forcer le passage juste sur la feuille de la premiere journée et moi j'ai 31 feuilles.
    les gestionnaires au niveau des sites peuvent se trompés sur la saisie de l'identifiant d'un salarié ds la cbb2, c'est la ou j'ai ce message d'erreur d'exécution: 1004 erreur définie par l'application ou par l'objet.

    merci de votre aide.

    Bonjour

    c'est bon, même si ça ma pris beaucoup de temps mais j'ai réussi a résoudre le problème et pour éviter ce bug ou message d'erreur j'ai modifié le code de cette façon:
    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 combobox2_change()
    Dim x As Integer
    If ComboBox2.Value = "" Then Exit Sub
    If ComboBox2.ListIndex = -1 Then ComboBox1.SetFocus
    For x = 2 To 11
    Me.Controls("textbox" & x).Value = ""
    Next x
    On Error GoTo erreur
    If ComboBox2.ListIndex <> -1 Then cells(ComboBox2.ListIndex + 1, 1).Select
    With sheets("01")
       For x = 2 To 11
          Me.Controls("TextBox" & x) = .cells(Me.ComboBox2.ListIndex + 1, x)
       Next x
    End With
    erreur:
    End Sub
    Cordialement

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    tout d'abord essaie de mettre ton code entre balises pour plus de lisibilité

    ensuite de mettre "on error goto...." n'est pas forcement la solution

    sache que l'évènement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private sub comboboxX_change(..........)
    est déclenché lors du:

    - remplissage de la combo
    -ajout d'item
    -suppression d'item

    hors vu ta macro çà n'est pas ce que tu veux
    essai de mettre la même chose mais dans le click de ta combo

    tu ne devrais plus avoir cette erreur a gérer


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. controler les saisies dans une cellule
    Par lecaire dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 19h14
  2. 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
  3. Controler la saisie dans un dataGridView
    Par HENRYC dans le forum C#
    Réponses: 10
    Dernier message: 14/12/2007, 11h41
  4. controle de saisie dans un formulaire
    Par pat06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/12/2007, 17h11
  5. [VBA-E]controle de saisie dans une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/03/2006, 16h43

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