Suppression dans listbox

  • Initiateur de la discussion Initiateur de la discussion Gexk5
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gexk5

XLDnaute Occasionnel
Bonjour, est il possible en cliquant dans une listbox, de supprimer la ligne voulue sur 2 feuilles différentes??
Soit clic droit puis supprimer, message de confirmation
Soit double clic , message, suppression.
je joint mon fichier reduit sur mediafire , trop gros pour excel downloads
Merci d'avance a tous ceux qui s'interesseront a mon sujet



Congé_Aeronautique_V6.2 - Copie.rar
 
Re : Suppression dans listbox

Bonjour Gexk5, le forum,

Ton fichier est au format .Rar, impossible à ouvrir....

Pourquoi choisir de tels formats, alors que windows sait le faire, Clic droit sur ton fichier dans l'explorateur windows et Envoyer vers/Dossier compressé..... (sauf si tu es encore à W98 et -)

Tu nous joint ton fichier, comme précédemment, et c'est bon....

Ceci dit, cela n'enlèvera pas le poids, mais au moins, tout le monde pourra l'ouvrir et te répondre.....

A te lire
 
Re : Suppression dans listbox

Salut Gexk5,

Salut JP,
Juste comme ça JP les fichiers en .rar ne sont pas impossible à ouvrir 🙂
Moi j'utilise un logiciel libre IZarc en version 3.81 (compatible vista)
il ouvre un tas de format différend !

Gexk5, ton fichier est super bien foutu et très bien codé 😉
Tu trouveras ci-dessous le code pour traitement des congés payés
Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' ListBox des congé payés
  Dim Lig As Long, LigF As Long, Nom As String, Sht As Worksheet
  Nom = Me.ComboBox1.Value
  Lig = Me.ListBox1.ListIndex
  Set Sht = Sheets("SAUVEGARDES_CP")
  ' On pose la question si on veux supprimer la feuille ou non
  If MsgBox("Voulez-vous supprimer la liggne sélectionnée" & vbCrLf _
    & "de la feuille : " & Sht.Name & " ?", vbQuestion + vbYesNo, "SUPPRESSION ...") = vbNo Then
    Set Sht = Nothing
    Exit Sub
  End If
  ' Recherche la première occurence du nom
  On Error Resume Next
  With Sht.Range("A1:A" & Application.Rows.Count)
    LigF = .Find(What:=Nom, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
      SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
  End With
  On Error GoTo 0
  ' Sort de la procédure si le nom n'a pas été trouvé
  If LigF = 0 Then Exit Sub
  ' On supprime la ligne correspondant à
  ' Première ligne trouvée pour le nom + ligne sélectionnée dans LISTBOX
  Sht.Rows(LigF + Lig).Delete
  ' Réinitialise l'objet Sht
  Set Sht = Nothing
  '
  ' Suppression de la ligne dans la feuille Sauv_Export
  Dim IncL As Long
  ' Incrément de correspondance de ligne
  IncL = 0
  Set Sht = Sheets("Sauv_Export")
  ' Recherche la première occurence du nom
  On Error Resume Next
  With Sht.Range("A1:A" & Application.Rows.Count)
    LigF = .Find(What:=Nom, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
      SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
  End With
  On Error GoTo 0
  ' Si aucune occurence n'a été trouvée, on sort
  If Lig = 0 Then Exit Sub
  ' Sinon, tant que le nom de la ligne est bon
  Do While Sht.Range("A" & LigF) = Nom
    ' Si le type de congé correspond
    If Sht.Range("C" & LigF) = "Congé Payé" Then
      ' Si l'incrémentation de ligne correspond
      ' à la ligne sélectionnée dans LISTBOX1
      If IncL = Lig Then
        ' On supprime la ligne en question
        Sht.Rows(LigF).Delete
        ' SURTOUT ne pas oublié de sortir de la boucle Do ... Loop
        Exit Do
      Else
        ' Si ça ne correspond pas, on incrémente de 1
        IncL = IncL + 1
      End If
    End If
    ' Incrémente la ligne trouvée
    LigF = LigF + 1
  Loop
  ' MEt à jour la liste box
  Call ComboBox1_Click
End Sub

Suppression de la ligne sélectionnée sur double clique et après validation
(un bouton supression serait mieux)

A adapter pour les autres congés 😉
Bon courage ...
 
Re : Suppression dans listbox

bonjour Gexk5

Modifications a faire :

Code:
Private Sub UserForm_Initialize()
Dim c As Range
For Each c In Range("a36:a" & Range("a65536").End(xlUp).Row)
    ComboBox1.AddItem c
Next c
    ListBox1.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox1.ColumnWidths = "45;40;65;90;40;50;40;[COLOR=blue]0;0[/COLOR]"
    ListBox2.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox2.ColumnWidths = "45;40;65;90;40;50;40;[COLOR=blue]0;0[/COLOR]"
    ListBox3.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox3.ColumnWidths = "45;40;65;90;40;50;40;[COLOR=blue]0;0[/COLOR]"
    ListBox4.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox4.ColumnWidths = "100;50;75;00;95;65;[COLOR=blue]0;0;0[/COLOR]"
    ListBox5.ColumnCount =[COLOR=blue] 9[/COLOR]
    ListBox5.ColumnWidths = "90;60;75;00;95;65;[COLOR=blue]0;0;0[/COLOR]"
    ListBox6.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox6.ColumnWidths = "00;100;100;00;150;40;[COLOR=blue]0;0[/COLOR]"
    ListBox7.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox7.ColumnWidths = "00;60;120;00;80;90;10;[COLOR=blue]0;0[/COLOR]"
    ListBox8.ColumnCount = [COLOR=blue]9[/COLOR]
    ListBox8.ColumnWidths = "80;90;90;00;70;40;[COLOR=blue]0;0;0[/COLOR]"
End Sub

dans Combobox1_Click

Code:
                .......
                listbox.List(listbox.ListCount - 1, 5) = c.Offset(0, 4)
                listbox.List(listbox.ListCount - 1, 6) = c.Offset(0, 7)
                [COLOR=blue]listbox.List(listbox.ListCount - 1, 7) = feuille[/COLOR]
[COLOR=blue]               listbox.List(listbox.ListCount - 1, 8) = c.Row[/COLOR]
            End If

ajouter et eventuellement adapter
et ce pour toutes les listbox concernées

Code:
Private Sub ListBox1_Click()
f = ListBox1.List(ListBox1.ListIndex, 7)
l = ListBox1.List(ListBox1.ListIndex, 8)
For n = 2 To Sheets("Sauv_Export").Range("A65536").End(xlUp).Row
  If Sheets("Sauv_Export").Range("A" & n) = Sheets(f).Range("A" & l) And Abs((Sheets("Sauv_Export").Range("G" & n) - Sheets(f).Range("I" & l))) < 1 / 12 / 3600 Then
    supp = n
  End If
Next n
reponse = MsgBox("Voulez-vous supprimer les lignes correspondantes dans " & f & " et dans Sauv_Export", vbYesNo)
If reponse = 6 Then
  Sheets(f).Rows(l).Delete
  Sheets("Sauv_Export").Rows(supp).Delete
End If
End Sub

Edit

En retard moi (comme d'hab)

Salut BrunoM45
 
Dernière édition:
Re : Suppression dans listbox

re le forum,
Merci Bruno, je regarde ta soluce , et merci pour le compliment, je dois dire que les excellien(ennes) de ce forum m'ont donné un sacré coup de main pour mon projet

Pour jeanpierre, voici le nouveau lien, sans compression
Congé_Aeronautique_V6.2 - Copie.xls

J'utilise la toute derniere version de winrar, c'est sans doute pour cela que tu ne peux pas l'ouvrir
 
Re : Suppression dans listbox

re, merci a tous les deux, je vais adapter a mon projet, si cela interesse des exceliens, je peux vous mettre mon fichier entier sur mediafire

encore merci, toujours aussi bons et rapides sur ce forum
 
Re : Suppression dans listbox

Re le forum,
C'est extra, les deux propositions fonctionnent , j'ai choisi la soluce de JPierre, plus simple a mettre en oeuvre , Merci a bruno ( je mets ton code de coté, ca peut servir).

Une autre idée m'est venue, puisque je peux maintenant supprimer l'historique des saisies, est il possible dans le meme temps que cela remette ma base de donnée a jour???

ex: suppression d'un congé payés donc suppression de 1 congé payé dans la colonne congé payé pris ( le cp reste se calcul a chaque ouverture du fichier)

Bonne journée
 
Re : Suppression dans listbox

Re, Bonjour Bruno, PierreJean,

Gexk5, déjà, c'est la soluce Pierrejean....

Gek5 encore, tu as le compresseur de windows..... facile et pratique

Bruno, j'avais IZarc et je le préconisais.... mais je l'ai perdu avec mon DD, il y a un peu plus d'un mois....

Bon WE
 
Re : Suppression dans listbox

Re

Euh moi c'est Pierrejean

JP pourrait se vexer de la confusion

a mettre dans un module

Code:
Sub MajCpPris(nom As String)
With Sheets("BASE")
Set c = .Columns(1).Find(nom, LookIn:=xlValues, lookat:=xlWhole)
  If Not c Is Nothing Then
    .Cells(c.Row, 4) = .Cells(c.Row, 4) - 1
  End If
End With
End Sub

et modif
Code:
.......
If reponse = 6 Then
  [COLOR=blue]Call MajCpPris(Sheets(f).Range("A" & l))
[/COLOR]  Sheets(f).Rows(l).Delete
  Sheets("Sauv_Export").Rows(supp).Delete
End If
[COLOR=blue]Call ComboBox1_Click[/COLOR] [COLOR=darkgreen]' emprunt a Bruno[/COLOR]
 
Re : Suppression dans listbox

Bonsoir le forum,
Apres plusieurs test, me revoila, la soluce de PierreJean est bien mais je prefere par double clic, et de plus pour la remise a jour de la base, si j'annules 3 jours de congés, cela m'en remet que 1!!

J'ai donc opté pour la soluce de bruno, comment faire pour remaettre ma base a jour lors de l'annulation, avec le bon nombre, si j'annule 3 CP cela doit me retirer 3 dans la colonne CPPris

Merci de vos reponses, et si vous avez d'autres idées, je suis a l'écoute
 
Re : Suppression dans listbox

Bonjour Gexk5, j'ai un soucis quand je veut lancer ton prog en effet il bloque dans vba au niveau :

Private Sub UserForm_Initialize()
...
DateJour.Value = Date

Et comme message d'erreur au demarrage j'aiprojet ou bibliotheque introuvable.
Peut tu me renseigner sur quoi faire pour pouvoir comprendre ton prg.

Je ne dis pas que je trouverais la solution mais la je suis incapable de voir sont fonctionnement.

Je te remercie par avance!!


Modifier :

Dsl j'ai reussi a regler ce pb par contre ton prg n'est pas terminer d'apres ce que j'ai vu.
Tu propose de partager ce fichier, je serais tres intereser par ton prg car je suis en train de creer a peut pres la meme chose avec des feuille d'heure!!
Mais je suis au tout debut!
 
Dernière modification par un modérateur:
Re : Suppression dans listbox

Salut keyboardsfr78, mon prog est terminé, j'ai simplement supprimer pas mal de choses pour l'alleger pour le forum, je peux te faire parvenir le prog entier si ca t'interresse, donne moi ton mail par message privé.

@+
 
Re : Suppression dans listbox

Salut Gexk5,

J'ai encore un petit probleme avec ton prog, je pense que les cal1 etc ne se charge pas et me provoque un erreur au demarage du USF1.

J'ai installer microsoft calendar control, mais ce ne change rien.
Peut tu me donner quelque explication a ce sujet STP.

Je te remercie, je te fait parvenir mon bout de prog bien avance lundi soir car je vais le completer ce WE.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Réponses
0
Affichages
733
Retour