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 :

Ouvrir un formulaire sur un enregistrement précis


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut
    Mon pb est assez simple à présenter:
    sur chacune des feuilles Excel de mon classeur j'ai créer un formulaire
    ensuite je lance un petit macro qui ouvre ces formulaires un après l'autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Sheets("Disponibilités").Select
        ActiveSheet.ShowDataForm
        Sheets("Périodes").Select
        ActiveSheet.ShowDataForm
        Sheets("Informations").Select
        ActiveSheet.ShowDataForm
    Le pb est que les formulaires se positionnent chaque fois sur le premier enregistrement de la feuille. Je voudrais qu'il se positionne sur l'enregistrement qui a dans la colonne A la valeur 1. Comment faire ?

    En fait je me rende compte que les formulaires sont créés dinamiquement avec ShowDataForm et donc le pb est un peu différent. Est-ce qu'il y a une solution ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut Solution
    Solution trouvée à :
    http://www.pcreview.co.uk/forums/act...-t1009176.html

    Pas 1: Trouver, selon nos critères, l'enregistrement voullu (le numéro de la ligne = k1) et faire un select dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" + CStr(k1)).Select
    Pas 2: Appeler la fonction
    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
    Sub putCellCriteria()
    '
    ' Cette fonction va faire que le formulaire qu'on va afficher avec ShowDataForm
    ' va se mettre sur l'enregistrement de l'ActiveCell; une fois dans le formulaire:
    '   - avec le bouton "Précédent" on va aller sur le premier enregistrement
    '   - avec le bouton "Suivant" on va aller sur l'enregistrement voullu
    ' et dans les deux cas l'ascenseur va apparaître.
    '
    ' OBS: Pour que DataObject soit connu il faut la librairie "Microsoft Forms 2.0 Object Library"
    '      qu'on peut ajouter au projet en ajoutant à une feuille un bouton "Contrôles Active X"
    '      (et en le supprimant après).
    '
    ' Solution trouvée à:  http://www.pcreview.co.uk/forums/activesheet-showdataform-t1009176.html
    '
        Set MyData = New DataObject
        MyData.SetText ActiveCell.Value
        MyData.PutInClipboard
        col_mir = ActiveCell.Column - 1
        str_mir = "%c" & "{TAB " & col_mir & "}" & "^v" & "%n"
        SendKeys str_mir
    '
    End Sub
    Pas 3: Faire apparaître le formulaire avec ActiveSheet.ShowDataForm.


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut Solution 2: Enhanced DataForm
    Sinon j'ai trouvé aussi un plugin Excel (gratuit et très facile à installer) pour avoir des DataForm-s plus évolués cf.
    http://spreadsheetpage.com/index.php/dataform
    Le formulaire se positionne alors automatiquement sur la cellule activée.
    On affiche ce DataForm avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "ShowDataForm"

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

Discussions similaires

  1. [AC-2013] ouvrir un formulaire sur un enregistrement bien précis
    Par toto159 dans le forum IHM
    Réponses: 2
    Dernier message: 27/12/2014, 18h01
  2. [AC-2010] Ouvrir formulaire sur un enregistrement précis
    Par alexbrabo dans le forum IHM
    Réponses: 4
    Dernier message: 20/08/2013, 15h53
  3. Réponses: 1
    Dernier message: 06/07/2006, 14h44
  4. Ouvrir un formulaire sur un enregistrement donné
    Par gaetanc15 dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2006, 10h19
  5. Réponses: 1
    Dernier message: 12/12/2005, 16h11

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