Listview Monte et Descendre

Il y a-t-il un moyen de déplacer « monter descendre » une ligne dans une listview ?

Merci


pardon Bonjour

Bonjour vlad92

Oui, je pense que c'est faisable, voici la procédure

1) il suffit de boucler sur toutes les colonnes de la Listview en mémorisant la ligne du dessus ou dessous

2) Puis la ligne du dessus ou dessous prend les valeurs de la ligne précédemment sélectionnée

3) La ligne précédemment sélectionnée prend les valeurs mémorisées

A toi de jouer

bonjour vlad92 ,brunoM45 et le forum

voici ce que j'utilise pour remonter une ligne

Private Sub CommandButton5_Click()

'Remonter

Dim T(), A As Integer, Nb As Integer, X As Long
Dim Temp As String, B As Integer

With ListView1
    For B = 1 To .ListItems.Count
        If .ListItems(B).Selected = True Then
            X = .SelectedItem.Index
            .ListItems(B).Selected = False
            If X = 1 Then
                .SetFocus
                .ListItems(X).Selected = True
                Exit Sub
            Else
                X = X - 1
            End If
            With .ListItems(X)
                Temp = .Text
                .Text = ListView1.ListItems(X + 1)
                ListView1.ListItems(X + 1).Text = Temp
                With .ListSubItems
                    Nb = .Count
                    ReDim T(1 To Nb)
                    For A = 1 To Nb
                        T(A) = .Item(A).Text
                        .Item(A).Text = ListView1.ListItems(X + 1).ListSubItems(A).Text
                        ListView1.ListItems(X + 1).ListSubItems(A).Text = T(A)
                    Next
                End With
            End With
        End If
    Next
    If X = 0 Then Exit Sub
    .SetFocus
    .ListItems(X).Selected = True

End With
End Sub

et pour redescendre

Private Sub CommandButton6_Click()

 'Descendre

Dim T(), A As Integer, Nb As Integer, X As Long
Dim Temp As String, B As Integer

With ListView1
    For B = 1 To .ListItems.Count
        If .ListItems(B).Selected = True Then
            X = .SelectedItem.Index
            .ListItems(B).Selected = False
            If X = .ListItems.Count Then
                .SetFocus
                .ListItems(X).Selected = True
                Exit Sub
            Else
                X = X + 1
            End If
            With .ListItems(X)
                Temp = .Text
                .Text = ListView1.ListItems(X - 1)
                ListView1.ListItems(X - 1).Text = Temp
                With .ListSubItems
                    Nb = .Count
                    ReDim T(1 To Nb)
                    For A = 1 To Nb
                        T(A) = .Item(A).Text
                        .Item(A).Text = ListView1.ListItems(X - 1).ListSubItems(A).Text
                        ListView1.ListItems(X - 1).ListSubItems(A).Text = T(A)
                    Next
                End With
            End With
        End If
    Next
    If X = 0 Then Exit Sub
    .SetFocus
    .ListItems(X).Selected = True
End With
End Sub

ce code est dans un fichier non fini de facturation donc il remonte ou descend des lignes avec un article, son prix , sa tva etc

Pascal

Salut et MERCI BEAUCOUP

ça marche nickel

Bonjour,

J'ai besoin d'utiliser les fonctionnalités dont vous parlez mais je suis complètement novice avec Excel.

Pourriez vous poster un fichier en démo pour?

Merci

bonsoir Moritz

avant de te donner un fichier démo où tu pataugeras si vraiment tu n'y connais rien en vba

commence par te documenter dans les cours, les tutos et les FAQ des différents forums

le tout fait n'existe pas mais le cas par cas oui

une fois que tu aura fait une esquisse de ce que tu veux tu pourra la joindre afin d'obtenir une aide

sais tu créer un userform?

sais tu alimenter une listview?

autant de question a apprendre avant de te lancer dans plus compliqué

regarde les liens en bas du post

Pascal

merci grisan29 pour le code

Rechercher des sujets similaires à "listview monte descendre"