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

VB 6 et antérieur Discussion :

selection multiple de lignes de datagrid


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut selection multiple de lignes de datagrid
    je veux faire une selection multiple de lignes d'une datagrid pour les supprimer.comment faire

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Voilà le code pour sélectionner plusieurs lignes dans un datagrid
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    option explicit
    Enum ModifierKeysEnum
        mkNone = 0
        mkShift = 1
        mkControl = 2
    End Enum
    Private ModifierKey As ModifierKeysEnum
     
    Private Sub grdLevel1_Click()
    Dim CurrentClickedRow As Long
    Dim i As Long
     
        With grdLevel1
            CurrentClickedRow = .MouseRow
            If CurrentClickedRow = 0 Then Exit Sub
            If CurrentClickedRow = .Rows - 1 Then Exit Sub
     
            .Visible = False
            Select Case ModifierKey
            Case mkNone     'Clear all highlights and highlight this row
                Screen.MousePointer = vbHourglass
                .Col = 1
                For i = 1 To .Rows - 2
                    .Row = i
                    If .CellBackColor = vbDarkBlue Then
                        HighlightRow grdLevel1, hsOff
                    End If
                Next i
                .Row = CurrentClickedRow: HighlightRow grdLevel1, hsOn
                Screen.MousePointer = vbDefault
     
            Case mkShift    'Highlight all rows between this row and mLastRow
                .Row = CurrentClickedRow
                If mLastRow = CurrentClickedRow Or mLastRow = -1 Then
                    HighlightRow grdLevel1, hsOn
                ElseIf mLastRow > CurrentClickedRow Then
                    For i = CurrentClickedRow To mLastRow
                        .Row = i: HighlightRow grdLevel1, hsOn
                    Next i
                Else
                    For i = mLastRow To CurrentClickedRow
                        .Row = i: HighlightRow grdLevel1, hsOn
                    Next i
                End If
     
            Case mkControl  'Toggle highlight state of clicked row
                HighlightRow grdLevel1, IIf(.CellBackColor = vbDarkBlue, hsOff, hsOn)
            End Select
     
     
            mLastRow = CurrentClickedRow
            .Visible = True
     
        End With 'grdLevel1
     
        Screen.MousePointer = vbDefault
     End Sub
    '-----------------
    Public Sub HighlightRow(aGrid As MSFlexGrid, NewState As HighlightState)
    Dim i As Integer
        With aGrid
            For i = 0 To .Cols - 1
                .Col = i
                .CellBackColor = IIf(NewState = hsOff, vbWhite, vbDarkBlue)
                .CellForeColor = IIf(NewState = hsOff, vbBlack, vbWhite)
            Next i
        End With 'aGrid
    End Sub
    Pour ce qui est de supprimer ces lignes, il y a la méthode RemoveItem...

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    merci pour ta reponse meme si ce code ne marche pas.

    j'ai essayé le code suivant mais il aussi ne donne pas le resultat souhaité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim bm As Variant
    For Each bm In grdLevel1.SelBookmarks
     Me.grdLevel1.AllowDelete = True
     grdLevel1.RowBookmark(bm).Remove
    Next

  4. #4
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Qu'est-ce qui ne fonctionne pas? La sélection multiple ou la suppression de ligne? Je te conseille de mettre des lignes de debug dans ton code. tu dois t'assurer que la collection grdLevel1.SelBookmarks est bien remplie...

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Il semblerait qu'il ait une confusion enre MsFlexGrid et DataGrid.
    Les fonctinnalités de selection/suppression données par Anneca sont pour un MsFlexGrig, je pense.
    Personellement j'utilise dao avec le databound grid, et je ne connais pas le DataGrid. Désolé de ne pas pouvoir aider plus.

Discussions similaires

  1. [Datagrid] selection multiple ligne
    Par LyonM dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 10/08/2010, 17h24
  2. [rich:datatable]Selection Multiple des Lignes
    Par pipo7610 dans le forum JSF
    Réponses: 1
    Dernier message: 26/06/2009, 08h45
  3. [VBA-excel] Selection multiple de ligne
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/10/2006, 12h32
  4. Réponses: 4
    Dernier message: 21/07/2006, 10h14
  5. Réponses: 3
    Dernier message: 29/08/2005, 16h44

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