Erreur VBA listbox et suppression de cellules

Erreur VBA listbox et suppression de cellules - VB/VBA/VBS - Programmation

Marsh Posté le 19-05-2005 à 06:17:30    

Bonjours à tous
j'ai un probleme avec une macro, je trouve pas ce qui cloche  
c'est un userform avec une listBox et un bouton qui doit supprimer les lignes selectionnées du listbox  
voici le code  
-----------------------------------  
Public Sub initlistbox()  
Dim x As Byte  
Me.Listbox1.Clear  
 
der = Sheets("Feuil!1" ).Range("A9" ).End(xlDown).Row  
x = 0  
 
For Each c In Range("A9:A" & der)  
 
    With NouvListe  
        .AddItem c  
        .List(x, 0) = c  
        .List(x, 1) = c.Offset(0, 2)  
        .List(x, 2) = c.Offset(0, 4)  
        .List(x, 3) = c.Offset(0, 6)  
        .List(x, 4) = c.Offset(0, 8)  
        .List(x, 5) = c.Offset(0, 12)  
        .List(x, 6) = c.Offset(0, 14)  
        .List(x, 7) = c.Offset(0, 16)  
        .List(x, 8) = c.Offset(0, 18)  
        .List(x, 9) = c.Row  
        x = x + 1  
    End With  
Next c  
End sub  
----------------------------------------------  
Private Sub Supprimer_Click()  
Dim i As Integer  
 
With Listbox1  
    If .ListIndex = -1 Then Exit Sub  
    For i = .ListCount - 1 To 0 Step -1  
        If .Selected(i) = True Then  
            Sheets("Feuil!1" ).Rows.List(i, 18).Delete   <---- l'érreur vient de la à chaque fois  
            .Selected(i) = False  
        End If  
    Next i  
End With  
initlistbox  
End Sub  
 
Si quelqu'un a une idée de mon problême, je l'en remercie d'avance  

Reply

Marsh Posté le 19-05-2005 à 06:17:30   

Reply

Marsh Posté le 19-05-2005 à 07:38:45    

Essaie cela :

Code :
  1. Private Sub Supprimer_Click()
  2. Dim i As Integer
  3. With ListBox1
  4.     If .ListIndex = -1 Then Exit Sub
  5.     For i = .ListCount - 1 To 0 Step -1
  6.         If .Selected(i) = True Then
  7.             Sheets("Feuil!1" ).Rows(.List(i, 18)).Delete
  8.             .Selected(i) = False
  9.         End If
  10.     Next i
  11. End With
  12. initlistbox
  13. End Sub


Message édité par knakes le 19-05-2005 à 07:39:00

---------------
now : do nothing
Reply

Marsh Posté le 19-05-2005 à 10:57:39    

Merci de ton aide
J'ai éssayer mais il continu de me dire "propriété de list non valide" et me souligne cette ligne
je continu à chercher, doit pas y avoir grand chose
encore merci

Reply

Marsh Posté le 20-05-2005 à 07:15:45    

knakes a écrit :

Essaie cela :

Code :
  1. Private Sub Supprimer_Click()
  2. Dim i As Integer
  3. With ListBox1
  4.     If .ListIndex = -1 Then Exit Sub
  5.     For i = .ListCount - 1 To 0 Step -1
  6.         If .Selected(i) = True Then
  7.             Sheets("Feuil!1" ).Rows(.List(i, 9)).Delete
  8.             .Selected(i) = False
  9.         End If
  10.     Next i
  11. End With
  12. initlistbox
  13. End Sub



Salut
tu a raison pour "Rows(.List(i, 9))" c'est ma première erreur
ma deuxième c'est que la feuille était protéger  :sarcastic:  
et la troisième que j'arrive pas à résoudre, c'est que une ligne fait référence (par une formule)à la ligne que je supprime, donc après j'ai une erreur #REF sur cette ligne, qui fait planter les proprietes list de mon listbox.
 

Reply

Marsh Posté le 20-05-2005 à 07:41:26    

En faisant recalculer Excel pour recharger la formule, cela changerait quelquechose ?


---------------
now : do nothing
Reply

Marsh Posté le 20-05-2005 à 17:00:36    

salut knakes
ça marche pas non plus
merci

Reply

Marsh Posté le 20-05-2005 à 17:43:48    

Attend, il est logique que si tu supprimes la référence d'une formule, tu te retrouves avec un #REF.
 
Aucune formule magique ne pourra remettre un lien que tu as supprimé...
 
Quel résultat attends-tu?
Supprimer la formule qui se réfère à cette ligne?
 
Avant d'appliquer des "solutions", il faut savoir ce qu'on veut.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 20-05-2005 à 18:12:11    

Ne pas mettre de formule et laisser une macro calculer. c'est bcp plus simple.
 
Le fouet.


---------------
now : do nothing
Reply

Marsh Posté le 20-05-2005 à 18:28:20    


 :heink: Pour qui??? :heink:


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 20-05-2005 à 18:31:50    

moi.


---------------
now : do nothing
Reply

Marsh Posté le 20-05-2005 à 18:31:50   

Reply

Marsh Posté le 20-05-2005 à 18:34:49    

Mais, non, tu ne le mérites pas. :whistle:


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 20-05-2005 à 18:38:31    

Trop gentil ...  [:anathema]


Message édité par knakes le 20-05-2005 à 18:39:19

---------------
now : do nothing
Reply

Marsh Posté le 21-05-2005 à 08:35:19    

knakes a écrit :

Ne pas mettre de formule et laisser une macro calculer. c'est bcp plus simple.
 
Le fouet.


 
en effet, c'est la solution que je vais adopter pour éviter les erreurs
à part le fouet  :D  
merci de votre aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed