Aide sur une macro de filtre et suppression

Bonjour, je suis étudiante en developpement informatique et notre language de base est C# donc j'ai aucune idée sur le VBA(je suis nul j'y connais riien) . je suis en période de stage mais le probléme est que la société travaille avec le Vb et le Vba, j'ai lu quelques tutoriels et quelques cours et mon encadrant m'a proposé un petit projet c'est le faite de prendre un tableau de commande en cours de réalisation chaque commande passe par plusieurs étapes qui sont numéroté à partir de 10 (exemple de série de numéros d'opérations : 10 ,20 30 40 ...) le but de ce projet est de créer une macro qui teste sur les séries des numéro si il sont enchaîné ( par exemple une série de 10,20,30,40,50 ... c'est bien sinon si on trouve une série de 10,40,50,60 l'opération numéro 10 est déja exécuté mais non confirmé donc on doit la supprimé du tableau

Si dessus un petit code qu j'ai fait mais je craint que c'est totalement faux

Dim i As Integer 
Dim j As Integer
Dim k As Integer
Dim l As Integer
T=0

For i=9 To 32321
For j=i+1 To 32321
If Range("B"&[i]) = Range ("B"&[j]) Then 

T=1 

End If
Next j
Next i

If T=1 Then
For k=9 To 32321
For l=k+1 To 32321
If Range("D"&[k]) + 10 < Range("D"&[l]) Then 

Range("D"&[k]).EntireRow.Delete 

End If
Next l
Next k
End If

besoin d'un coup de main svp svp svp

Bonjour.

Gné ?

Bonne journée.

Pour développer, on ne sait pas à quoi correspondent tes variables, on ne sait pas si c'est là l'intégralité de ton code ou non, qu'est-ce que 32321 ? Quel rapport entre tes étapes et ton code ?

En informatique on a aussi dû t'apprendre à indenter le code, c'est plus sympathique

Rebonjour, je suis en première année donc je suis encore débutante et pour mieux clarifier les choses

Dim i As Integer  ' i pour la première boucle qui teste sur le numéro d'ordre si il est identique ou non
Dim j As Integer  ' j pour la deuxième boucle qui teste sur le numéro d'ordre si il est identique ou non
Dim k As Integer ' k pour la première boucle du teste des séries d'opération si il sont enchaîné ou non
Dim l As Integer  ' l pour la deuxième boucle du teste des séries d'opération si il sont enchaîné ou non

T=0   ' une variable booléenne qui se change de 0 à 1 si on a les numéros d'ordres égaux

' Boucle de test d'égalité des numéros d'ordre

For i=9 To 32321 ' nombre de lignes du tableau excel 
For j=i+1 To 32321
If Range("B"&[i]) = Range ("B"&[j]) Then 

T=1 

End If
Next j
Next i

'Boucle de test d'enchainement des series d'opérations 
If T=1 Then
For k=9 To 32321
For l=k+1 To 32321
If Range("D"&[k]) + 10 < Range("D"&[l]) Then 
' suppréssion de la ligne de l'opération effectué et non enregistré 
Range("D"&[k]).EntireRow.Delete 

End If
Next l
Next k
End If

Donc tu as le n° de la commande en colonne B et le n° d'ordre en colonne D ?

Vu tes boucles j'imagine que le tableau est trié sur la colonne B puis sur la D, est-ce le cas ?

oui effectivement le tableau et trié en colonnes B et D et la colonne B est la colonne du numéro de l'opération et la colonne D est la colonne de numéro des séries de petites opérations que s'enchainent pour effectuer l'opération 


pour infos : je débute le VBA ça fait juste 3j

svp svp svp svp aidez moi


Dim i As Integer  ' i pour la première boucle qui teste sur le numéro d'ordre si il est identique ou non
Dim j As Integer  ' j pour la deuxième boucle qui teste sur le numéro d'ordre si il est identique ou non
Dim k As Integer ' k pour la première boucle du teste des séries d'opération si il sont enchaîné ou non
Dim l As Integer  ' l pour la deuxième boucle du teste des séries d'opération si il sont enchaîné ou non

T=0   ' une variable booléenne qui se change de 0 à 1 si on a les numéros d'ordres égaux

' Boucle de test d'égalité des numéros d'ordre

For i=9 To 32320 ' nombre de lignes du tableau excel 
For j=i+1 To 32321
If Cells(i,2) = Cells(j,2) Then 

T=1 

End If
Next j
Next i

'Boucle de test d'enchainement des series d'opérations 
If T=1 Then
For k=9 To 32320
For l=k+1 To 32321
If Cells(k,4) + 10 < Cells(l,4) Then 
' suppréssion de la ligne de l'opération effectué et non enregistré 
Cells(k,4).EntireRow.Delete 

End If
Next l
Next k
End If
Rechercher des sujets similaires à "aide macro filtre suppression"