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]user form retourner a la feuille et clique souris


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut [VBA-E]user form retourner a la feuille et clique souris
    Bonjour,

    Je voudrais depuis un bouton d'un Userform pouvoir séléctionner une cellule dans ma feuille et revenir à mon userform sans que le reste de ma macro se poursuive.

    Connaissez-vous un moyen ?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Regarde ShowModal dans l'aide
    Extrait
    Lorsqu'un objet UserForm n'est pas modal, l'utilisateur peut afficher d'autres feuilles ou fenêtres sans fermer cet objet.
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Si j'utilise la fonction MODAL comme ça, toute ma macro s'execute et cela ne m'arrange pas. Il faut que je puisse simplement aller sur ma feuille pour séléctionner ma cellules sans que ma macro continue.

    Je sais pas trop comment expliquer cela.

    Le but est de selectionner la cellule qui va recevoir mon nouveau text que j'ai dans mon TextBox.

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    ça normalement cest la fonction de l'InputBox

    Par exemple, si tu veux sélectionner une plage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim P as Range
    Set P = Application.InputBox("sélectionnez une plage",Type:=8)
    Maintenant après, ça dépend ce que tu fais dans ton formulaire et s'il y a d'autres champs.
    De plus, je sais pas si un InputBox de ce type existe pour un formulaire. Faut que je regarde
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Tu peux faire un truc barbare dans ton UserForm, c'est rajouter un bouton a coté d'une zone de texte ou tu mettra les références de ta plage de cellules. Dans ce bouton, lors du click tu met ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    Dim p As Range
    Set p = Application.InputBox("selection", Type:=8)
    TextBox1.Value = p.Address
    End Sub
    ça te permet de pouvoir ouvrir une fenetre pour sélectionner une plage de cellules, et ça te l'écrira dans TextBox1.

    Le seul souci que j'ai trouvé à cette méthode, et que je trouve très étrange, c'est que ça ne récupère que l'adresse des références en elle-meme, par exemple A$1:B$2 (d'ailleurs ça te met des dollars direct aussi), mais si tu prend une plage de cellules dans une autre cellule, ça te récupère pas le nom de la feuille, ça te mettra que les cellules.
    Après, tu peux peut etre aussi afficher cet InputBox quand tu valide ton "formulaire". De cette manière, les modifications seront faites sur le scellules choisies.

    A toi de voir
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pour sélectionner une plage, il existe le contrôle RefEdit.
    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!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut

    Citation Envoyé par illight
    Tu peux faire un truc barbare dans ton UserForm, c'est rajouter un bouton a coté d'une zone de texte ou tu mettra les références de ta plage de cellules.
    Cêst peut-être barbare, mais ça marche à merveille ce code .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    Dim p As Range
    Set p = Application.InputBox("selection", Type:=8)
    TextBox1.Value = p.Address
    End Sub
    Le top du top serait que l'input box se ferme sur le simple clic. J'ai 8000 classeurs à modifier, alors chaque clic éliminé est un gros gain de temps.

    Mais MERCI 8000 FOIS

    Srame

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

Discussions similaires

  1. [Toutes versions] VBA - utiliser données de user form dans main
    Par cecile_64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2012, 15h11
  2. [XL-2010] comparaison d'apres user form et sélection de feuille, colonne, ligne.
    Par rugbyman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/10/2011, 14h27
  3. Transfert User form vers feuille de données
    Par ludovicpierre dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2011, 10h22
  4. [VBA-E] excel minimisé mais user form visible
    Par bill7 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 22/04/2007, 15h30
  5. [VBA-W]User Form à l'ouverture d'un document
    Par Oly1973 dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/03/2006, 11h10

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