Bonjour,
Grâce à vous j'ai réussi à faire ma zone de liste multicritère mais je n'arrive pas à supprimer les lignes dans mon tableau xcel lorsque j'ai sélectionné 1 ou + personne dans ma listbox.
merci bcp
claire
Bonjour,
Grâce à vous j'ai réussi à faire ma zone de liste multicritère mais je n'arrive pas à supprimer les lignes dans mon tableau xcel lorsque j'ai sélectionné 1 ou + personne dans ma listbox.
merci bcp
claire
Pour supprimer une ligne de ta feuille excel, le code est le suivant
Il te faut donc balyer talistbox et ta feuille excel parallèlement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Rows(i).select Selection.delete Shift:=xlUp
Essaye d'éviter les Select:Envoyé par marsupilami34
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Rows(i).delete Shift:=xlUp
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
voici le code que j'ai fais et qui ne marche pas, erreur "indice n'appartient pas à sélection" pour ligne en gras:
mais je crois que je me suis perdu dans un truc trop compliqué!désolée de ne pas l'avoir mis au début.
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 Private Sub supsalsorti_Click() Dim rowrange As Range rowcnt = 0 For r = 0 To salsorti.ListCount - 1 If salsorti.Selected(r) Then rowcnt = rowcnt + 1 If rowcnt = 1 Then Set rowrange = ActiveSheet.Rows(r + 1) rowrange.Copy Worksheets("sortie").Select Range("a1").Select ActiveSheet.Paste For i = 0 To 50 While (Worksheets("salarie").Cells(i, 1).Value = Worksheets("sortie").Range("a1").Value) If Worksheets("salarie").Cells(i, 1).Value = rowrange Then Rows(i).Delete End If i = i + 1 Wend Next Else Set rowrange = Union(rowrange, ActiveSheet.Rows(r + 1)) rowrange.Copy Worksheets("sortie").Select Range("a1").Select ActiveSheet.Paste For i = 0 To 50 While (Worksheets("salarie").Cells(i, 1).Value = Worksheets("sortie").Range("a1").Value) If Worksheets("salarie").Cells(i, 1).Value = rowrange Then Rows(i).Delete End If i = i + 1 Wend Next End If End If Next r 'If Not rowrange Is Nothing Then rowrange.Select 'Unload Me End Sub
Il n'existe pas de Row 0!Envoyé par clairefranclieu
Edit --> Je pense que ça génère une autre erreur (1004?)
Es-tu certaine de l'orthographe des feuilles "salarie" et "sortie".
Par exemple, un espace ou un accent parasite.
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
j'ai testé et j'ai erreur 1004 si i=0 mais si je mets i=1, alors il copie bien une ligne mais celle du dessus.
Et même si ça "marche", il n'y a aucune ligne supprimée.
Effectivement, j'avais des erreurs dans mes noms de feuilles![]()
Oui...Envoyé par clairefranclieu
Et alors?
Si tu n'y arrives pas c'est, peut-être, qu'il est temps d'étudier un peu le langage que tu veux utiliser.
Tu vas devoir faire une boucle et une recherche (peut-être par une boucle) dans cette boucle.
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
Partager