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 :

Ouverture d'un Userform sur valeur d'une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Ouverture d'un Userform sur valeur d'une liste déroulante
    Bonjour, afin d’améliorer mes outils de travail, je cherche a développer une macro, mais je bloque un peu.
    Jai pour l’instant une alternative qui me permet de faire ce que je souhaite, mais cest peu industriel..

    Jai un tableau sur excel qui reprend différentes infos. cest pour faire un suivi d'inventaire. A vrai dire, jai mis une liste deroulante au niveau d'une colonne, et je souhaiterai que lorsque je choisi ou met manuellement un N dans cette colonne, la macro me lance un userform, qui recupere les infos de cette ligne, et les envoi par mail.
    Nom : Sans titre.png
Affichages : 666
Taille : 4,4 Ko

    Lorsque je choisi O dans la colonne, je voudrais que ce ne fasse rien, et si je met N que ca me lance un userform, que jai deja creer.

    jai trouvé ce debut de code, mais ca ne fonctionne pas..

    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)
    If Not Application.Intersect(Target, Range("M2:m5000")) Is Nothing Then
     
    plage1 = Range("m2:m5000")
     
         If plage1 = N Then
         Call FORMULAIRE1
     
         End If
     
    End Sub
    Merci d'avance !!

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Target est bien utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Value = "N" Then
            Call FORMULAIRE1
        End If
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,
    Avec le peu d'informations et ne connaissant pas les données , je ne suis pas certain qu'un formulaire soit bien utile . A mon avis de simples formules avec IF et INDEX EQUIV aurait été suffisant afin de recuperer les données voulues.
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour l'aide!
    le principe est que je ne suis pas la seule a me servir de ce fichier, il est partagé avec des collegues, donc faut que se soit ^presque "assisté"

    le but de mon outils de suivi est que je dois faire un inventaire en atelier, si je retrouve les pieces je met O (oui) dans la colonne, sinon , je dois mettre N (non), ce qui appelle un formulaire avec des données qui change regulierement (reference, mail, et quantité). A partir de la, ca demande a un collegue de faire une recherche dans son magasin pour voir si lui retrouve les pieces perdues.
    Ensuite meme principe si il retrouve les pieces il doit passer par un formulaire prérempli qui informe lpar mail que les pieces ont ete retrouvées.


    jai repris le code ci dessus
    mais il doit manquer quelque chose, comme quelle colonne est concernée je pense? ca ne me lance rien comme formulaire..
    je souhaiterai que ca le fasse sur la colonne M entiere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Value = "N" Then
            Call FORMULAIRE1
        End If
    End Sub
    merci c cool

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Value = "N" and target.column = 13 Then ...
    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.

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Rectification, jai vu comment faire sur ce point. un grand merci. cela dit je souhaiterai evoluer un peu le truc pour recuperer la ref (colonne D) dans la textbox1 et la quantité (colonne G) dans textbox 2 de cette meme ligne.

    si je met un N sur la ligne 100, je voudrais quil reprenne dans le formulaire automatiquement la ref et la qt de la ligne 100

    Nom : Sans titre.png
Affichages : 944
Taille : 62,7 Ko

    jai ce debut de code. je veux quil prenne l'info de la textbox 1 dans la meme ligne que la cellule selectionnée, mais 8 colonnes en arriere. colonne D.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_initialize()
    TextBox1 .Value = ActiveCell.Value = UserForm.TextBox1.Text
                                  On Error GoTo fin
                                  ActiveCell.Offset(0, 8).Select

  7. #7
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Call FORMULAIRE1 peut transmettre la ligne par Call FORMULAIRE1(Target.row)
    Je suppose que FORMULAIRE1 est une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Formulaire1(ligne as long)
      Userform1.Show
      TextBox1=Cells(ligne,13)
       TextBox2=Cells(ligne,8)
    End Sub

Discussions similaires

  1. Recherche de l'aide pour améliorer une macro excel
    Par Yul80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/09/2008, 10h21
  2. Aide pour finaliser une macro
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2008, 08h02
  3. Aide pour un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/07/2008, 10h09
  4. Réponses: 22
    Dernier message: 20/05/2008, 10h25
  5. [VBA-E] Aide pour un bouton dans excel qui exécuterai mon code.
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 16h23

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