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 :

[VBA-E]Déclenchement combobox sur la frappe des caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Par défaut [VBA-E]Déclenchement combobox sur la frappe des caractères
    Bonjour

    Merci Michel et AlainTech pour votre aide précieuse sur la combobox. Je sais déclencher la combobox sur "Worksheet_change", mais comment faire pour la déclencher avec la frappe des premiers caractères?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim co1 As Integer, li1 As Integer
    Application.EnableEvents = False
    co1 = ActiveCell.Column: li1 = ActiveCell.Row
    If co1 = 1 Then
     
        UserForm1.Show
     
    End If
    Application.EnableEvents = True
    End Sub

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut

    Citation Envoyé par Lexot2
    Je sais déclencher la combobox sur "Worksheet_change"
    Ce qui veut dire???
    Qu'appelles-tu "déclencher"?

    D'après ton code, tu ouvres un UserForm sur un événement de ta feuille Excel.
    Je n'y vois aucune référence à une ComboBox.
    Je devine qu'elle doit être présente sur UserForm1 mais...
    As-tu fait un UserForm avec juste une Combo dessus???

    Petit commentaire qui n'a rien à voir:
    Dans l'événement Change de ta feuille, Target est la cellule qui a déclenché l'événement. Tu peux donc simplifier ton code comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Target, Columns(1)) Is Nothing Then
        UserForm1.Show
      End If
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Par défaut
    Bonjour

    j'ai un bon de commande pour des composants électroniques avec les colonnes suivantes :
    Fournisseur Désignation Réf PU etc...

    Je voudrais insérer le fournisseur par une macro excel de manière automatique. Il faudrait choisir un fournisseur parmi une dizaine environ. La possibilité d'ajouter ou retirer des fournisseurs de la liste serait aussi interessante.

    C'est fait. J'ai réalisé un userform avec seulement une combobox (bien deviné!). Je déclenche l'userform avec "selection_change", ce qui me permet d'entrer dans la combobox.(ce n'est pas "Worksheet_change"!)
    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
    Public li1 As Integer, co1 As Integer
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    co1 = ActiveCell.Column: li1 = ActiveCell.Row
    If co1 = 1 Then
        UserForm1.Show
    End If
    End Sub
     
    Public co1 As Integer, li1 As Integer
    Dim fourn As String
     
    Private Sub CommandButton1_Click()
    ' Bouton Valider choix
     
    UserForm1.Hide
    Application.ScreenUpdating = False
    '
    fourn = ComboBox1.Value
    ' Stockage du choix effectué dans la liste déroulante en D2
    Cells(li1, 1).Value = fourn
    Cells(li1 + 1, 1).Activate
    End Sub
     
    Private Sub CommandButton2_Click()
    ' Bouton Annuler
    UserForm1.Hide
    End Sub
     
    Private Sub CommandButton3_Click()
    ' Bouton Modifier
    End Sub
     
    Private Sub UserForm_Activate()
    co1 = ActiveCell.Column: li1 = ActiveCell.Row
    If co1 = 1 Then
        Range("M1") = li1
        Me.ComboBox1.ListIndex = -1
        ComboBox1.SetFocus
    End If
    End Sub
     
     
    Private Sub UserForm_Initialize()
    Me.ComboBox1.RowSource = "Feuil1!A101:A" & Sheets("Feuil1").Cells(101, 1).End(xlDown).Row
    End Sub
    1.Peut-on ouvrir l'userform avec un autre évènement tels que l'entrée des premiers caractères de la combo?
    2.Comment cacher l'userform avec la touche "Esc"? J'ai essayé "Onkey"!!!
    3.Comment bloquer l'exécution d'une ou des macros par un code? (ex : bouton à bascule un clic=bloque un 2ème=débloque)

    J'ai déjà fait un gros travail seul. Je ne refuserai donc pas un coup de pouce!
    Encore un grand merci.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par Lexot2
    j'ai un bon de commande pour des composants électroniques avec les colonnes suivantes :
    Fournisseur Désignation Réf PU etc...
    D'après ce que j'en comprends, ton formulaire de saisie du bon de commande est la feuille Excel elle-même.

    Vu le peu de souplesse de ce système, je ne travaille que rarement de cette manière.

    Je préfère, de loin, créer un (ou des) UserForm adapté(s) à la partie de saisie concernée.

    Citation Envoyé par Lexot2
    Je déclenche l'userform avec "selection_change"
    SelectionChange est piégeux pour l'utilisateur.
    Si, par hasard, la sélection est déjà sur la cellule que l'utilisateur veut modifier, il ne saura pas quoi faire.

    SelectionChange a le même paramètre Target que Change.
    Le code donné plus haut reste d'application.

    Citation Envoyé par Lexot2
    1.Peut-on ouvrir l'userform avec un autre évènement tels que l'entrée des premiers caractères de la combo?
    ??? Caractères tapés dans la Combo alors qu'elle n'est pas encore affichée???
    Faudrait mieux expliquer le résultat que tu attends.

    Citation Envoyé par Lexot2
    2.Comment cacher l'userform avec la touche "Esc"? J'ai essayé "Onkey"!!!
    Place un bouton avec la propriété Cancel à True sur le UserForm.

    Citation Envoyé par Lexot2
    3.Comment bloquer l'exécution d'une ou des macros par un code? (ex : bouton à bascule un clic=bloque un 2ème=débloque)
    Case à cocher?
    Ou alors, un bouton dont tu changes le Caption à chaque clic.
    Il te suffit de relire le Caption pour connaître l'état du bouton.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Par défaut
    Bonjour

    Je n'arrive pas à ouvrir l'userform, de manière automatique, par la frappe des caractères avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Target, Columns(1)) Is Nothing Then
        UserForm1.Show
      End If
    End Sub
    Merci pour toute l'aide que je reçois

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Tu as bien mis le code dans la Feuille où tu tapes?

    Tu tapes bien quelque chose dans la colonne 1?
    Si tu veux une autre colonne, il faut modifier cette partie-là:
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. CompareTo sur String avec des caractères numériques
    Par seb0634 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2008, 10h35
  2. [Excel][VBA] Questions sur la hiérarchie des objets
    Par cladsam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2006, 14h59
  3. [VBA-E] Procédure appelée sur clic des boutons de regroupement
    Par truman dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2006, 11h34
  4. [VBA]Execution d'une procédure avec un ComboBox sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/01/2006, 09h27

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