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

VBA Word Discussion :

comment Retenir une selection "faite via la souris" dans une variable vba (word) ?


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 57
    Par défaut comment Retenir une selection "faite via la souris" dans une variable vba (word) ?
    Hello à vous tous.

    Explication de mon casse tête..:
    Comme un exemple est souvent bien mieux parlant que beaucoup de prose ..

    Voilà mon exemple :


    Dans Word soit 2 tableaux..

    Admettons qu'avec ma souris je sélectionne la ligne 2 du tableau 2..
    et que je veuille que vba me réduise la ligne ..
    sous word, pas de menu proposé, donc je le fais manuellement via une petite astuce ..
    cela ... je sais le faire .... et le coder en vba..

    Mais, mon pb est qu'avant de réduire cette ligne,
    j'ai besoin d'intervenir sur toutes les lignes de tous les tableaux afin de conserver la valeur initiale de la hauteur de la ligne..
    (je peux en effet avoir besoin de ré-afficher la ligne avec sa hauteur initiale)

    * pour cela, j'utilise une astuce.. je crée une nouvelle colonne dans la page active, (de très petite taille) dans laquelle je copie cette hauteur initiale.....)
    * (pas trouvé d'autre solution pour conserver cette valeur initiale..)
    (je pourrais mettre ces valeurs dans un tableau de vba mais une fois le code/macro terminé, je perds toutes les valeurs..)
    donc comment faire à part mettre cette valeur dans la page .. ?

    Si vous avez une idée, je suis preneur ..
    enfin .. bref ..., fini de verboser en travers ... continuons ..

    De ce fait, je suis parfois obligé d'utiliser (dans mon code vba) le code "Selection.XXX" (pour la création de nouvelle colonne etc.......)
    "XXX" représente objet ou collection ...."

    Mon pb est qu'à partir ou j'utilise une fois ce code "Selection.XXX", je perd la sélection que j'avais faite avec ma souris..
    (le code vba prend le pas sur la sélection faite avec la souris (normal)

    Et ma sélection faite avec la souris est donc perdue...

    (ma sélection peut être 1 ligne, plusieurs lignes contiguës ou non ou le tableau entier..)

    voir cette image :

    Ma Question ..
    comment "mémoriser" cette sélection (lignes ou tableau entier) faite à l'aide de la souris dans une variable "vba"

    En Effet,
    si je peux retenir cette sélection, je pourrais donc agir comme je veux sur les tableaux, et une fois terminé, je pourrais récupérer cette valeur préalablement sauvegardée dans une variable (sélection faite avec la souris) et exécuter mon code vba de "masquage" de ligne ...)
    Voili, voilou ....
    Comprenez vous mon charabia ...

    Dans un 1° temps au moins je voudrais pouvoir sauvegarder dans une variable vba 1 ligne sélectionnée.. d'un certain tableau
    ensuite je verrais pour 2 lignes contiguës

    Mais déjà... comment fait-on pour 1 ligne ..?

    @ vous lire et merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Il ne peut y avoir qu'un seul objet Selection en VBA.

    Pour ne pas perdre les valeurs affectées à une variable, il suffit de déclarer la variable en dehors de la procédure.

    http://heureuxoli.developpez.com/off.../?page=page5#5
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 57
    Par défaut
    Re,

    Je vais aller voir ton lien http://heureuxoli.developpez.com/off.../?page=page5#5

    Il ne peut y avoir qu'un seul objet Selection en VBA.
    1 seul objet .., ok ...

    1 ligne c'est un objet non ?
    2 lignes contiguës ou pas c'est bien un objet composé de 2 lignes non ?

    et ..
    quand on sélectionne toutes les lignes d'un tableau ce n'est pas la même chose que le tableau lui même ?
    (car, quand on regarde sur une feuille word, on a réellement l'impression que c'est la même chose ..)

    car .. 1 tableau c'est bien un ensemble de lignes non ? (avec un nb de colonnes > ou = 1

    Pour ne pas perdre les valeurs affectées à une variable, il suffit de déclarer la variable en dehors de la procédure.
    oui, je vois ce que tu veux dire, "externe à la macro" je crois "Public"
    cad déclarer une variable avec l'attribut Public
    => mais il faudrait donc que cette variable soit "active" dès que l'on ouvre Word, ou je me trompe ?
    (cad pour tout document ouvert..)
    quel est ton avis ?

    Mais quel est le code qui permet de récupérer dans une variable la sélection faite avec une souris ?

    exemple :

    on sélectionne un mot dans un document avec la souris, comment fait-on pour récupérer cette sélection dans une variable vba ?

    @+ et merci de ton aide

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Un seul Objet Selection.

    Si tu es certain que ton objet sera toujours un tableau, tu peux transférer l'objet tableau contenu dans ta sélection dans une variable Table.

    Tu peux avoir dix objet tables, mais une seule sélection.

    Dans le lien que je te donne, on y explique la portée des variables.

    Le Normal.dot est actif dès l'ouverture de Word.
    On peut aussi ajouter un modèle en tant que complément et ce modèle peut contenir du code.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 57
    Par défaut
    Re,

    Un seul Objet Selection.

    Si tu es certain que ton objet sera toujours un tableau, tu peux transférer l'objet tableau contenu dans ta sélection dans une variable Table.

    Tu peux avoir dix objet tables, mais une seule sélection.
    ok, admettons que l'objet sélectionné soit toujours un tableau.
    quel est le code qui permet de mettre cette sélection dans une variable ?

    soit 2 tableaux dans mon document word
    sélection du 2° par exemple ..

    j'ai essayé pas mal de solution mais je n'y suis pas parvenu ..

    MaVariable = ???

    le code doit-il commencer par Activedocument ... ou Selection......

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Une variable table.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oTbl As Table
    Set oTbl = Selection.Tables(1)
    Juste pour la logique, si tu veux utiliser un objet sélectionné, il faut passer par Selection.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. [XL-2010] Suppression d'une ligne dans une feuille A tout en garder les infos dans une feuille B
    Par sebastien_ofs dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/01/2015, 12h10
  2. Réponses: 6
    Dernier message: 11/12/2014, 11h42
  3. Comment calculer la mesure "cout" dans une table de fait
    Par andy888 dans le forum Conception/Modélisation
    Réponses: 6
    Dernier message: 03/10/2013, 17h30
  4. Réponses: 13
    Dernier message: 23/05/2013, 20h38
  5. [DTS] Comment auditer les transformations sql faites via DTS
    Par danmick dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/08/2005, 07h40

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