Suppression ligne depuis Listview

biloute91

XLDnaute Occasionnel
Bonjour,

J'ai une listview où je récupère des données :


Code:
Private Sub CommandButton1_Click()
    Dim wsBD As Worksheet
    Dim derLig As Long
    Dim lig As Long
    Dim Plage As Range
    Dim CritRente As String
    Dim CritDateDeb As String
    Dim CritDateFin As String
    Dim LigList As Long
    
    Set wsBD = Worksheets("transac")
    
    ' Dernière ligne dans la feuille BD
    derLig = wsBD.Range("A" & Cells.Rows.Count).End(xlUp).Row
    If derLig < 2 Then Exit Sub
    
    ' Définition de la plage en colonne A
    Set Plage = wsBD.Range("A2:A" & derLig)
    
    ' Définition des critères
        ' N° Rente
    CritRente = IIf(TextBox1.Value = "", "*", TextBox1.Value)
        ' Date Début

    
    
    LigList = 1
    
    ' Vider la listview
    ListView1.ListItems.Clear
   
    ' Boucle sur toutes les lignes
    For lig = 2 To derLig
        ' Rechercher par rapport aux critères
        If CStr(wsBD.Range("A" & lig).Value) Like CritRente Then
            
            ' Remplir la première colonne
            ListView1.ListItems.Add , , wsBD.Range("A" & lig).Value
            'Remplissage colonnes 2 à 5
            ListView1.ListItems(LigList).ListSubItems.Add , , wsBD.Range("B" & lig).Value
            ListView1.ListItems(LigList).ListSubItems.Add , , wsBD.Range("C" & lig).Value
            ListView1.ListItems(LigList).ListSubItems.Add , , wsBD.Range("D" & lig).Value
            ListView1.ListItems(LigList).ListSubItems.Add , , wsBD.Range("E" & lig).Value
            ListView1.ListItems(LigList).ListSubItems.Add , , wsBD.Range("F" & lig).Value

            
            
            
                
            LigList = LigList + 1
       End If
    Next lig

    
    End Sub
Et je souhaite supprime une ligne dans la base après un double click

Merci par avance de votre aide
 

YANN-56

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

Bonjour Biloute91, et à ceux qui passeront par ici,

Tu peux regarder à ajouter un "Tag" aux Items de ta ListView récupérant le n° de la ligne
dans laquelle la cellule à été copiée. (Dans ton cas:"Lig")

Code:
Me.ListView1.ListItems(LigList).Tag = lig

Et par la suite, avec:

Code:
Private Sub ListView1_DblClick()
    Rows(Me.ListView1.SelectedItem.Tag).Delete
End Sub

Il resterait à aussi supprimer la ligne dans la ListView.

Je n'ai pas peaufiné, car je dois m'absenter.

De plus ces "derlig", "lig", "LigList" ne sont pas des méthodes que j'utilise,
car ces variables me semblent inutiles,

A te lire, et à plus tard,

Amicalement,

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

Bonjour ma laetitia préférée:):):),

Il resterait à aussi supprimer la ligne dans la ListView.

Disais-je...

Ton code est effectivement celui auquel je pensais.
Mais seulement après avoir supprimé la ligne dans la Feuille.

Cependant, il risque d'y avoir un souci. (Je n'ai pas testé!)

En passant par une modification de cette dernière, le "SelectedItem.Index" ne sera plus valide...
Il faudra donc préalablement le mettre en mémoire.

J'attends la réponse de Biloute91 pour construire un exemple.

S'il repasse par là, car beaucoup de questionneurs disparaissent rapidement dans la nature, sans répondre.:rolleyes:
Comme cela devient une fâcheuse habitude; j'économise donc mes investissements!

Il est certain que je vais suivre ce sujet, car avec ta maitrise, tu apporteras certainement bel enseignement.

Amicalement,

Yann
 

laetitia90

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

re, yann:):):):):):):)
je crois bien que tu as entierement raison mon ami :(:(

Suppression ligne depuis Listview
et non
suppression ligne dans listview


tres bonne l'idee du tag

en tout les cas.. si il revient il est en trés bonne "main" avec toi
ta grande passion les listviews

perso j'ai toujours beaucoup de mal a mit faire a ces "bêtes" je trouve toujours complexe a coder:(:(
bonne soirée
a+ leti
 

grisan29

XLDnaute Accro
Re : Suppression ligne depuis Listview

bonjour Laetitia,Yann_56 ,Fo_rum et biloute91
très bien Laetitia ton code:cool::cool: pour supprimer une ligne dans le fichier que chacun de vous 3 m'avez fait, le seul bemol c'est que justement par doubleclic je pensait faire retourner une ligne dans ses textbox afin de la modifié et de la remettre a sa place par appuisur bouton "modifié"
en plus de la suppression moi il faudrait que je puisse remonter ou descendre une ligne dans la listview en cas de mauvais positionnement
cordialement

Päscal
 
Dernière édition:

biloute91

XLDnaute Occasionnel
Re : Suppression ligne depuis Listview

Re,et désolé de ne pas avoir répondu plus tôt mais un impératif prof m'est tombé dessus.
J'avoue ne pas maitriser les listview et le code que j'ai fourni etait présent dans un fichier que j'ai repris d'un ex-collègue, du coup je galère unpeu.
Je n'arrive pas à mettre le tag dans ce code il met systématiquemet Out Of Bounds
Merci Yann_56 et Laetitia pour votre aide te votre patience
 

Fo_rum

XLDnaute Accro
Re : Suppression ligne depuis Listview

Bonsoir,

à tester
Code:
Private Sub ListView1_DblClick()
  wsBD.Rows([A:A].Find(ListView1.SelectedItem.Text, LookIn:=xlValues,LookAt:=xlWhole).Row).Delete
  ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
End Sub
mais après avoir déplacé la déclaration
ainsi
Code:
Dim wsBD As Worksheet  '<---- déclaration déplacée ICI pour garder l'initialisation
Private Sub CommandButton1_Click()
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

Bonsoir Biloute, Laetitia, Grisan, par ordre d'entrée en scène, et à ceux qui y monteront peut-être.

Par ordre inverse:

Grisan:
Je ne vais répéter ce que je t'ai déjà dit concernant ton travail personnel.
Il ne suffit pas de savoir récolter; il faut aussi savoir planter!!!
Un breton Ar Mor, qui parle à un Breton Ar Vro.
Dans l'esprit seulement, car je ne sais pas si tu es du bord de l'eau.

Laetitia:
Les listView sont un peu comme les Maths, au début on rame,
mais par la suite on se régale des possibilités qu'elles offrent.

Je suis plus effrayé par les ListBoxes, ComboBoxes auxquels je ne pige pas grand-chose.
Pour ce qui est des formules Excel; Equiv, RechercheV et autres mots agressifs...........
je n'ai, en lisant, qu'une envie: Me mettre à la pétanque. :confused:

Je suis disposé à échanger avec toi une approche qui te rassurera sur la simplicité de leur utilisation.
Voire en M.P. Si tu le souhaites.

Biloute:
J'aurais bien aimé allé plus loin pour t'aider, mais je n'ai pas envie de me farcir une base de données!
Tu joins donc un Classeur exploitable, et l'on verra par la suite!
Je t'assure que l'ajout d'un "Tag" est de ce qu'il y a de plus simple.

Amicalement à tous, et au plaisir,

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

Pardon Fo_rum,:) je ne t'avais pas vu.

Je préfère avoir enregistré le n° de la ligne concernée qu'utiliser un "Find" :confused:

Mais à chacun sa méthode.....(Il y a aussi celles qui vont me faire fuir!)

Amicalement, et encore ravi de te croiser.

Yann
 

Fo_rum

XLDnaute Accro
Re : Suppression ligne depuis Listview

re,

@YANN-56 (du tac au Tag)
...
Ton code est effectivement celui auquel je pensais.
Mais seulement après avoir supprimé la ligne dans la Feuille.
Cependant, il risque d'y avoir un souci. (Je n'ai pas testé!)

En passant par une modification de cette dernière, le "SelectedItem.Index" ne sera plus valide...
Il faudra donc préalablement le mettre en mémoire.
...
Ici, l'initialisation de la liste se faisant à partir du bouton, on peut supprimer ce souci en rajoutant une simple ligne à ton code.
Code:
Private Sub ListView1_DblClick()
    wsBD.Rows(Me.ListView1.SelectedItem.Tag).Delete
    CommandButton1_Click
End Sub
.
Je n'aime pas jouer au jeu du "j'aime/je n'aime pas". Je préfère m'enrichir autrement et, tout compte fait, je vais me lancer dans les graffitis pour apprendre à mieux taguer (merci pour l'idée :D
SRMAAAAASUVORK5CYII=
SRMAAAAASUVORK5CYII=
).
@ Lætitia :D : ce n'est pas galère de ramer avec ce type de liste surtout en bonne compagnie mais il est vrai que chacun prend plaisir en fonction de ses préférences.
 

grisan29

XLDnaute Accro
Re : Suppression ligne depuis Listview

bonjour Yann_56, et les autres acteurs de ce forum
voici le fichier que je refait en fonction de ce que vous tous m'avez fait pour me faire apprécier les listview(dur a comprendre) tete dure comme un breton:)
il y a plein d'option dessus qui ne sont pas active car j'ai copié/coller/glissé bref... l'usf tel que
je ne voudrais froissé personne, je suis ignare en listview et comme le dit Yann_56 "pour récolter il faut planter"
cordialement
Pascal
 

YANN-56

XLDnaute Barbatruc
Re : Suppression ligne depuis Listview

Bonjour Grisan29, et à ceux qui passeront par là,

Là tu t'attaque à Gros!....... C'est tout un programme!

Ceci confirme mon soupçon premier, quand je te parlais de "Rigueur" dans la structure de la base de données.

De mémoire, au regard de tes précédentes questions, tu couvres grand nombre de corps d'état du bâtiment.

Ton Classeur "Moteur" va très vite peser très lourd... A l'ouverture ou enregistrement de modification;
tu vas avoir le temps d'aller boire un café au bar du coin.

Ayant déjà travaillé sur ce genre de sujet, il m'est possible de t'aiguiller.

Cependant, je suis sur un autre projet. Et tu devras attendre un peu.

Je te ferai signe en M.P., quand j'aurai trouvé le temps de te construire un exemple concret.
Il sera déposé dans ce Fil.

Amicalement, et à plus tard,

Yann
 

grisan29

XLDnaute Accro
Re : Suppression ligne depuis Listview

Bonjour Yann_56:)
Comme tu as deviné qu’il s’agit d’un fichier de devis facturation:eek: que je suis en cours de conception
Sur ce fichier je devrai
-pouvoir faire des devis en plusieurs feuilles comme une facture d’ailleurs
-enregistrer le devis sous ….afin de créer la facture a partir du devis
-pouvoir modifier le devis au cas ou
-lors de la création de la facture sur devis pouvoir également modifier le contenu
-Gérer le stock afin de savoir s’il me manquera tel ou tel chose a l’établissement du devis suivant la qté stock, et aussi pouvoir débité la quantité vendue lors de la facture
-une bonne gestion des stock est égal a un bon inventaire
-possibilité d’envoyer devis et facture par mail sans outlook
-possibilité d’ajouter une petite image d’un article sur le devis
-passer également vers la comptabilité mais cela peut ce faire apres

Cordialement
Pascal
 

Discussions similaires

Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
312 329
Messages
2 087 325
Membres
103 516
dernier inscrit
René Rivoli Monin