Partager via

Première et dernière ligne d'une listbox

Anonyme
2023-05-07T19:20:52+00:00

Bonjour,

J'ai un classeur dans lequel j'ai un formulaire de recherche. Je cherche à pourvoir trouver la première et la dernière ligne de la listbox. Voici les codes que j'ai créés sans succès :

'Bouton Premier

Private Sub Premier_Click()

On Error GoTo Message

ListBox1.TopIndex = ListBox1.ListCount

Message:

MsgBox ("Vous devez sélectionner une ligne !")

End Sub

'Bouton Dernier

Private Sub Dernier_Click()

Dim Derligne As Long

On Error GoTo Message

List1.ListIndex = 0

Message:

MsgBox ("Vous devez sélectionner une ligne !")

End Sub

Un bon Samartin !

Merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

15 réponses

  1. Anonyme
    2023-05-07T20:05:19+00:00

    Salut DenisVerrette!

    Il semble que votre code tente de définir les propriétés TopIndex et ListIndex d’un contrôle ListBox dans VBA, mais la syntaxe n’est pas tout à fait correcte.

    Voici quelques modifications que vous pouvez apporter pour essayer d’obtenir le comportement souhaité :

    'Bouton Premier' Sous-Premier_Click privé () Si ListBox1.ListCount > 0 alors ListBox1.TopIndex = 0 'définit le TopIndex sur le premier élément Autre MsgBox « Le contrôle ListBox est vide. » Fin Si Fin de la sous-section

    'Dernier bouton' Sous-Dernier_Click privé () Si ListBox1.ListCount > 0 alors ListBox1.TopIndex = ListBox1.ListCount - 1 'définir le TopIndex sur le dernier élément Autre MsgBox « Le contrôle ListBox est vide. » Fin Si Fin de la sous-section

    Ces modifications comprennent :

    Ajout d’une instruction If pour vérifier si ListBox contient des éléments avant de définir la propriété TopIndex. L’utilisation de l’indexation basée sur 0 pour la propriété TopIndex, de sorte que la définition de la valeur 0 sélectionne le premier élément et que la définition de ListCount - 1 sélectionne le dernier élément. Suppression de l’instruction On Error et de la boîte de message associée, car elle n’est pas nécessaire pour ce scénario.

    Notez que ces modifications supposent que ListBox est nommé « ListBox1 » dans votre formulaire. Si vous lui avez donné un nom différent, assurez-vous de mettre à jour le code en conséquence.

    Veuillez me faire savoir, si vous avez besoin d’une aide supplémentaire, je serai heureux de vous aider davantage.

    Sinceres salutations Shakiru

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2023-05-11T06:53:56+00:00

    Bonjour Denis,

    Essaie :

    Private Sub Dernier_Click()
    With Me.ListBox1
    ListBox1.Selected(.ListCount - 1) = True
    End With
    End Sub

    Private Sub Premier_Click()
    With Me.ListBox1
    .ListIndex = 0
    End With
    End Sub

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-05-10T18:54:35+00:00

    Bonjour Denis V, Je suis Femi et je serais heureux de vous aider avec votre question. Il semble que l’utilisation dans votre code était incorrecte. Veuillez essayer le code modifié ci-dessous et faites-moi savoir si cela fonctionne: ' Bouton Premier - Définir la première ligne visible Sous-Premier_Click privé () Si ListBox1.ListCount > 0 alors ListBox1.TopIndex = 0 Autre MsgBox « La zone de liste est vide! » Fin Si Fin de la sous-section

    ' Dernier button - Définir la dernière ligne visible Sous-Dernier_Click privé () Sombre visibleLignes aussi longues Dim lastVisibleIndex As Long

    Si ListBox1.ListCount > 0 alors visibleLines = ListBox1.Height \ ListBox1.ItemHeight ' Calculer le nombre de lignes visibles lastVisibleIndex = ListBox1.ListCount - visibleLines ' Calculer l’index de la dernière ligne visible

    Si lastVisibleIndex < 0 Then lastVisibleIndex = 0 ' Ensure the lastVisibleIndex is not negative End If

    ListBox1.TopIndex = lastVisibleIndex Else MsgBox "The listbox is empty!" End If End Sub

    Best Regards, Femi

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-05-10T18:20:41+00:00

    Bonjour,

    J'ai un classeur dans lequel j'ai un formulaire de recherche. Je cherche à pourvoir trouver la première et la dernière ligne de la listbox. Voici les codes que j'ai créés sans succès :

    'Bouton Premier

    Private Sub Premier_Click()

    On Error GoTo Message

    ListBox1.TopIndex = ListBox1.ListCount

    Message:

    MsgBox ("Vous devez sélectionner une ligne !")

    End Sub

    'Bouton Dernier

    Private Sub Dernier_Click()

    Dim Derligne As Long

    On Error GoTo Message

    List1.ListIndex = 0

    Message:

    MsgBox ("Vous devez sélectionner une ligne !")

    End Sub

    Un bon Samartin !

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2023-05-08T14:16:02+00:00

    Bonjour Shakiru,

    Quand j'applique les codes, il ne se passe rien. Pas de message d'erreur ou d'application du code. Voici ce que j'ai inscrit :

    'Bouton Premier

    Private Sub Premier_Click()

    If ListBox1.ListCount > 0 Then

    ListBox1.TopIndex = 0

    Else

    MsgBox ("Le contrôle ListBox est vide.")

    End If

    End Sub

    'Bouton Dernier

    Private Sub Dernier_Click()

    If ListBox1.ListCount > 0 Then

    ListBox1.TopIndex = ListBox1.ListCount - 1

    Else

    MsgBox ("Le contrôle ListBox est vide.")

    End If

    End Sub

    À titre d'info voici mes codes pour suivant et précédent et ça fonctionne. J'aimerais pour avoir un Msgbox Il n'y a plus de lignes.

    'Bouton Suivant

    Private Sub Suivant_Click()

    On Error GoTo Message

    Me.ListBox1.ListIndex = Me.ListBox1.ListIndex + 1

    Message:

    MsgBox ("Vous devez sélectionner une ligne !")

    End Sub

    'Bouton Précédent

    Private Sub Précédent_Click()

    On Error GoTo Message

    Me.ListBox1.ListIndex = Me.ListBox1.ListIndex - 1

    Message:

    MsgBox ("Vous devez sélectionner une ligne !")

    End Sub

    Merci

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire