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 :

Bouton precedent et suivant


Sujet :

Macros et VBA Excel

  1. #1
    fredoud
    Invité(e)
    Par défaut Bouton precedent et suivant
    Bonjour,

    Me revoilà pour vous présentez un autre souci. Dans mon userform, j'ai 4 boutons pour me déplacer du 1er au dernier et précédent ou suivant, quel syntaxe faut-il utiliser pour ce déplacer par rapport à la "clef" colonne A de la feuille Base ? Le nom dynamique de la colonne "clef" est : "Base_clef"

    En vous remerciant d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Je doit mettre en place cette fonctionnalité de mon application. Avec ce que j'ai pu voir et lire voici ce que donne le code :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub CmdPremier_Click()
        ComboBox1.ListIndex = 0
    End Sub
     
    Private Sub ComboBox1_Change()
     
        If ComboBox1.ListIndex = -1 Then Exit Sub
     
        Me.CmdPremier.Enabled = True
        Me.CmdPrecedent.Enabled = True
        Me.CmdSuivant.Enabled = True
        Me.CmdDernier.Enabled = True
     
        Select Case ComboBox1.ListIndex
        Case -1
            Me.CmdPremier.Enabled = False
        Case 0
            Me.CmdPrecedent.Enabled = False
            Me.CmdPremier.Enabled = False
        Case ComboBox1.ListCount - 1
            Me.CmdSuivant.Enabled = False
            Me.CmdDernier.Enabled = False
        End Select
     
     Worksheets("Base").Cells(ComboBox1.ListIndex + 1, 1).Select
        Navigue ActiveCell.Row
     
    End Sub
     
    Private Sub CmdPrecedent_Click()
    ComboBox1.ListIndex = ComboBox1.ListIndex - 1
    End Sub
     
    Private Sub CmdSuivant_Click()
    ComboBox1.ListIndex = ComboBox1.ListIndex + 1
    End Sub
     
    Private Sub CmdDernier_Click()
    ComboBox1.ListIndex = ComboBox1.ListCount - 1
    End Sub
    Mais à prendre avec précaution car le monde du VBA m'ai inconnue et j'apprends.

    Mercatog m'a fortement aidé dans l'élaboration de mon application, je le remercie en tout cas !

    Stéphanie

  3. #3
    fredoud
    Invité(e)
    Par défaut
    Bonsoir Stéphanie,

    J'ai essayé votre proposition mais cela ne fonctionne pas, ça bloque dès la première ligne. Merci quand meme.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    J'essaye mais contient encore une erreur dans ce qui concerne le sub navigue. Pour le moment voici le code :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Sub CmdPremier_Click()
        Nom.ListIndex = 0 'Nom est le name dans proprieté de la Combobox concernant le Nom et Prénom
    End Sub
     
    Private Sub Nom_Change()
     
        If Nom.ListIndex = -1 Then Exit Sub
     
        Me.CmdPremier.Enabled = True
        Me.CmdPrecedent.Enabled = True
        Me.CmdSuivant.Enabled = True
        Me.CmdDernier.Enabled = True
     
        Select Case Nom.ListIndex
        Case -1
            Me.CmdPremier.Enabled = False
        Case 0
            Me.CmdPrecedent.Enabled = False
            Me.CmdPremier.Enabled = False
        Case Nom.ListCount - 1
            Me.CmdSuivant.Enabled = False
            Me.CmdDernier.Enabled = False
        End Select
     
     Worksheets("Bd").Cells(Nom.ListIndex + 1, 1).Select
        Navigue ActiveCell.Row
     
    End Sub
     
    Private Sub CmdPrecedent_Click()
    Nom.ListIndex = Nom.ListIndex - 1
    End Sub
     
    Private Sub CmdSuivant_Click()
    Nom.ListIndex = Nom.ListIndex + 1
    End Sub
     
    Private Sub CmdDernier_Click()
    Nom.ListIndex = Nom.ListCount - 1
    End Sub
    Private Sub Navigue(L As Long)
    Dim i As Byte
     
    With Worksheets("Bd")
    For i = 1 To 5
    Me("Nom" & i) = .Cells(L, i)
    Next
    End With
     
    End Sub
    En espérant qu'il soit utile pour vous !

    Stéphanie

  5. #5
    bethalem
    Invité(e)
    Par défaut
    Bonjour,

    Stéphanie, je vous remercie de votre réponse mais je crois que sur ce site il n'y a pas beaucoup d'animation car depuis que j'ai posté un message et bien, il y a personne.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Avez-vous cherché sur le site ?

    En ce qui me concerne, j'avais des problèmes avec mon USF et ils ont été résolus par Mercatog. C'est vrai, j'ai eu contact seulement avec lui, moi aussi ça m'étonne !

    Courage

    Stéphanie

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Ce site est animé par des bénévoles.
    Il y a des questions qui reçoivent des réponses rapides d'autres moins, et peut-être jamais.
    Les raisons sont multiples j'imagine.
    Pour ma part, je ne réponds pas quand la question est trop vague ou ressemble à un cahier des charges où la personne qui pose la question s'attend à ce que l'on fasse son travail, ce qui est tout de même un comble mais finalement pourquoi pas si certain y réponde.
    D'autres fois aussi parce-que le sujet ne me passionne pas, est moins de ma compétence ou tout simplement parce-que je n'ai pas envie, ce qui me semble est mon droit.
    Cela m'arrive aussi de consacrer beaucoup de temps sur un sujet parce-que la question m'interpelle ou le sujet m'intérèsse au point d'y consacrer du temps.
    Voilà, cela c'est pour mon cas personnel et je crois très sincèrement que la majorité des personnes qui posent des questions sont ravies des réponses qu'on leurs donne.
    De plus je crois que Developpez.com est un des sites les plus sérieux où l'on trouve des réponses pertinentes, des tutoriels très professionnels et des faq superbement bien alimentées.
    Voilà qui est dit et maintenant je vais poster dans une intervention qui suit une piste pour le sujet dont question.

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Quand on veux dans une UserForm aller d'un record à un autre on utilise un bouton pour aller à la ligne suivante ou précédente et également à la première ligne (début) et à la dernière ligne (Fin).
    Pour cela, il faut savoir combien de ligne il y a, donc on simule le Ctrl + flèche bas ou Ctrl + flèche haut.
    Nous considérons que la base de donnée à parcourir est sur le classeur où se trouve le code VBA (ThisWorkbook) et sur la feuil1 et qu'enfin le premier record se trouve en A2
    Les variables déclarées en début de module
    n_Row représente le n° de la ligne que l'on lit
    EofRow représente la dernière ligne remplie (Fin du fichier)
    Lorsque que l'on va au record précédent, il faut faire en sorte, de ne plus pouvoir aller au n° de ligne inférieur au début de record (ici ligne 2) la même chose lorsque l'on va au suivant.
    Les boutons (ComboBox)
    cbPrevious gère le record précedent
    cbNextle record suivant
    Le code ci-dessous est une piste pour montrer la voie.
    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
    Option Explicit
    Dim n_Row As Single
    Dim EofRow As Single
    Private Sub cbNext_Click()
     n_Row = n_Row + Abs((n_Row < EofRow) * 1)
    Lecture
    End Sub
    Private Sub cbPrevious_Click()
     n_Row = n_Row - Abs((n_Row > 2) * 1): Lecture
    End Sub
    Private Sub UserForm_Initialize()
     EofRow = ThisWorkbook.Worksheets("Feuil1").Range("A" & Columns.Count).End(xlUp).Row
     n_Row = 2: Lecture
    End Sub
    Sub Lecture()
     With ThisWorkbook.Worksheets("Feuil1")
      TextBox1 = .Range("A" & n_Row)
     End With
    End Sub

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonsoir,

    Moi je débute aussi (1 semane) et je suis contente d'avoir eu à faire avec une personne de ce forum. Elle a su etre patiente et de plus elle m'a fait un petit cours avec exemple, pédagogique franchement, c'est gentil. Elle n'était pas obligé de le faire. La gentillesse veut dire aider quelqu'un de A à Z, petite parenthèse un livre de Chitochine explique bien ce c'est, la personne qui m'a aide a saisi le sens ! Pour revenir à nos moutons Bethalem, il faut que l'on sache ou est-ce que tu en es avec ton fichier, nous donner les grandes lignes, poser des questions précises mais une à la fois et comprendre les informations données par les membres bénévoles comme le signal Corona. Tu verras ton projet avancé et toi aussi par la meme occasion. Bon courage et persiste !

    Stéphanie

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour à tout le forum,

    J'ai trouvé la solution , en faite le rowsource faisait référence une liste de nom dynamique qui ne correspondait pas au ComboBox_nom.

    En vous remerciant, surtout à Corona

    Stéphanie

Discussions similaires

  1. bouton precedent et suivant de IE
    Par mouss4rs dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 26/04/2008, 17h48
  2. probleme avec le bouton precedent...
    Par julien_s dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/03/2006, 11h45
  3. Bouton precedent navigateur
    Par alexmorel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/11/2005, 11h17
  4. Detection clic sur bouton precedent
    Par shaun_the_sheep dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 20/10/2004, 18h18
  5. [JSP][Barre de navigation] Gestion du bouton precedent
    Par lando dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 09/09/2003, 17h18

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