Bonjour,
j'ai fais une macro qui fais la chose suivante:
elle fait un parcoure total de la feuille "suivi des demandes", si la valeur de la colonne "T" est "TER" ou "ANU", elle copie la ligne de la colonne "A" à la colonne "AO" dans une autre feuille qui s'appelle "Demandes closes".
le problème c'est qu'elle ne me retourne pas toutes les lignes qu'il faut, il faut que je clique sur le bouton qui déclenche la macro une deuxième fois, pour qu'elle me retourne une autre partie des lignes, et ainsi de suite.
sachant que c'est pas un problème d'espace, car j'ai vérifié.
voila le code:
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
41
42
43
44
45
46
47
48 Sub ExtractionListeCloturée() Application.DisplayAlerts = False Dim DerLig As Long, Lig As Long Dim FeuilDst As Worksheet, DerLD As Long ' Définir la valeur de l'Objet FeuilDst ' Nom de la feuille de Destination Set FeuilDst = Sheets("Demandes closes") ' Avec la Feuille "suivi des demandes" With Sheets("Suivi des demandes") ' Trouver la dernière ligne DerLig = .Range("A" & Rows.Count).End(xlUp).Row ' Pour chaque ligne For Lig = 3 To DerLig Select Case .Range("T" & Lig).Value 'Si l'on a l'une des valeurs suivantes : "TER", "ANU" Case "TER", "ANU" 'Colorer le numéro en bleu .Range("B" & Lig).Font.Color = vbBlue 'Récupérer la dernière ligne de la feuille de destination DerLD = FeuilDst.Range("A" & Rows.Count).End(xlUp).Row 'Inscrire les valeurs .Range("A" & Lig & ":AO" & Lig).Copy FeuilDst.Range("A" & DerLD + 1 & ":AO" & DerLD + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Range("A" & Lig).EntireRow.Delete Case Else End Select Next Lig End With Application.DisplayAlerts = True End Sub
svp si vous avez une idée de la cause, aidez moi.
MERCI
Partager