Dans mon tableau je garde la première ligne par numéro de dossier et vérifie s"il en a d'autres si c'est le cas elles sont supprimées.
Mais mon souci est que il reste des doublons et qu’il delete certains numéro de dossier.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 18 juil. 2006 à 13:09
Tu peux également remplacer cette condition :
If i <> j And j > i And nodoc1 = nodoc2 Then
par:
If j > i And nodoc1 = nodoc2 Then
ça revient au même et du coup l'execution sera plus rapide même si c'est déjà rapide
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 17 juil. 2006 à 15:14
Salut
Dans un premier temps je supprimerai ça CStr(varTour1) et CStr(varTour2).
Met varTour1 et varTour2 tout seul. Pourquoi tu les convertis en Sring, ça sert rien.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 17 juil. 2006 à 15:20
Explique moi cette condition stp pour je comprenne mieux
If varTour1 <> varTour2 And _
noDoc = Worksheets(4).Range("A" & CStr(varTour2)).Value And _
noRol = "Contributeur" Then _
si tu es arrivé la dans ton programme il y a forcément quelquechose dans noDoc vu qu'avant si'il y a rien tu sort du For donc tu peux supprimer noDoc = Worksheets(4).Range("A" & CStr(varTour2)).Value dans la condition
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 20091 17 juil. 2006 à 15:49
varTour1 est la première ligne ou il y a le n° de dossier.
varTour2 est ou sont les lignes doublons.
En faite je teste pour un n° de dossier après la première ligne de ce dossier s'il y a le même n° de dossier,
Si oui il supprime la ligne autant de fois qu'il la rencontre.
Si non il passe à la ligne suivante.
J'essaye de garder toujours la première ligne.
Exemple:
Ligne 1 : 9a18
Ligne 2 : 9a18
Ligne3 : 9a18
Je souhaiterai garder la ligne 1 à chaque numéro de dossier.
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 20091 17 juil. 2006 à 16:15
J'ai essayée :
Dim noDoc1 As String
Dim noDoc2 As String
Dim noRol As String
'Supprime les lignes dont les n° de dossier sont identiques après la première ligne
For i = 10 To 1500 '<= Nombre de lignes!!!
noDoc1 = Worksheets(4).Range("A" & i).Value
noRol = Worksheets(4).Range("D" & i).Value
If noDoc1 = "" Then Exit For
For j = 10 To 1500
noDoc2 = Worksheets(4).Range("A" & j).Value
If i <> j And noDoc1 = noDoc2 Then Worksheets(4).Range("A" & j).EntireRow.Delete
Next j
Next i
Et la macro ci dessus fait le même résultats que :
Dim i As Integer
Dim varTour1 As Integer
Dim varTour2 As Integer
Dim noDoc As StringDim noRol As String<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
'Supprime les lignes dont les n° de dossiers sont identiques après la première ligne
For varTour1 = 10 To 1500 '<= Nombre de lignes!!!
noDoc = Worksheets(4).Range("A" & CStr(varTour1)).Value
noRol = Worksheets(4).Range("D" & CStr(varTour1)).Value
If noDoc = "" Then Exit For
For varTour2 = 10 To 1500
If varTour1 <> varTour2 And _
noDoc = Worksheets(4).Range("A" & CStr(varTour2)).Value And _
noRol = "Contributeur" Then _
Worksheets(4).Range("A" & CStr(varTour1)).EntireRow.Delete
Next varTour2
Next varTour1
je souhaiterai toujours garder la 1ère ligne et supprimer celles d'en desous.
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 20091 17 juil. 2006 à 16:38
Oui il compare les 2 chaines de caractères.
mais j'ai toujours des doublons et la macro supprime quelques n° de dossier.
j'avais essayer aussi
1500 To 10 Step-1 mais ça marche pas.
merci
[?] Estelle[8D]