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
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.
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
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.
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![]()
j'ai trouvé pour la suppression de ligne, il y avait une confusion dans la sélection des feuilles!
Euh...
C'est résolu, alors???
Si oui, un petit clic pour éviter un grand choc![]()
![]()
Désolée mais je suis partie sur un autre problème. Seul le problème de la supression de ligne est résolu mais j'ai tjs:
"erreur 1004 si i=0 mais si je mets i=1, alors il copie bien une ligne mais celle du dessus."
Je reviens dessus dès que jepeux pour expliquer mieux le problème, merci.
claire
ben dans Cells (i,... le i est le numéro de ligne et va de 1 à 65536 d'ou si i = 0 .. erreur..Envoyé par clairefranclieu
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager