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 :

Améliorer mon bouton de navigation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Par défaut Améliorer mon bouton de navigation
    Bonjour,

    Grand débutant du VBA je me suis fais un bouton de navigation, pour une feuille de mon fichier.

    Je l'utilise pour aller directement à une ligne souhaité, et il est le suivant :

    Private Sub CommandButton15_Click()
    Dim Cellule As Range
    Dim Ligne As Integer
    Set Cellule = Sheets("BUDGET AGENCE").Range("B:B").Find("76 - ROUEN", LookAt:=xlWhole)
    Ligne = Cellule.Show
    UserForm1.Hide
    End Sub

    J'aimerais l'améliorer mais je flanche un peu.
    J'aimerais que :
    - La cellule qui s'affiche à l'écran soit positionnée en B3
    - Lorsque j'ouvre ma boîte à bouton, celle-ci s'affiche toujours au même endroit. Je tourne à 3 écrans, et celle-ci s'affiche rarement au même endroit

    Merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, essaie comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton15_Click()
        Dim Cellule As Range
        Dim Ligne As Integer
        Set Cellule = Sheets("BUDGET AGENCE").Range("B:B").Find("76 - ROUEN", LookAt:=xlWhole)
        If Not Cellule Is Nothing Then
            Application.Goto Reference:=Cellule, Scroll:=True
            ActiveWindow.ScrollRow = Cellule.Row - 2
        End If
        UserForm1.Hide
    End Sub
    Pour afficher ton userform au même endroit, tu devrais préciser ses coordonnées .top et .left avant de l'afficher.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    Si tu veux vraiment améliorer:
    Trouves un meilleur nom que CommandButton15
    Utilises des références explicites. Contrairement à ce que tu croits, Sheet(Sheets("BUDGET AGENCE") est une référence implicite. Elle fait référence à ActiveWorkbook.Sheets("BUDGET AGENCE"). Hors ActiveWorkbook est la classeur actif, il peut changer à tout moment (il suffit d'ouvrir ou créer un nouveau classeur).
    Ta feuille n'existe que dans un seul classeur, celui qui contient le code.
    Il existe une référence qui désigne cela: ThisWorkbook.

    Pour des raisons de lisibilité, on va utiliser des références au plus proche vers les objets.

    Donc avec un leger changement, on peut réécrire ton code de la facon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Wb As Excel.Workbook
    Set Wb = ThisWorkbook    '// Reference vers le cClasseur qui contient le code
     
    Dim Sh as Excel.Worksheet
    Set Sh = Sheets("BUDGET AGENCE")    '// Reference vers la feuille
     
    Dim Cellule As Excel.Range
    Set Cellule = Sh.Find("76 - ROUEN", LookAt:=xlWhole)
     
    Dim Ligne As Integer
    Ligne = Cellule.Show
    Me.Hide    '// Me designe l'objet courrant, en l'occurence le formulaire

  4. #4
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2023
    Messages : 2
    Par défaut
    Bonjour,

    Merci Franc ça marche impec !

    Merci deedo pour ton retour également. J'ai malheureusement pas tout compris ne maîtrisant pas les lignes de codes et les termes associés mais si ça peut optimiser l'ensemble, alors je vais creuser !

    Bonne journée

Discussions similaires

  1. Boutons de navigation dans mon formulaire
    Par wilikev dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2007, 12h10
  2. gtk stock item, pas d'image sur mon bouton ?
    Par titor dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 25/02/2007, 20h21
  3. centrer la font de mon bouton
    Par amelhog dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/05/2006, 14h50
  4. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13
  5. Bouton de navigation
    Par thierry sache dans le forum Flash
    Réponses: 2
    Dernier message: 17/12/2002, 11h43

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