Résolu Help VBA Excel

Zineup

Nouveau membre
Bonjour, je suis hyper nul en VBA et j'ai besoin de quelqu'un pour m'aider :( je n'y connais vraiment rien puisque j'étudie le C# et on m'a demandé au niveau de mon stage de réaliser une petite application de gestion des données sur excel je suis perdu

voilà un petit essai le principe c'est de tester sur un groupe de nombres d'ordre si il sont egaux on passe aux numéros d'opérations qui doivent etre une suite comme (10,20,30,....) sinon (10,30,50,60) on supprime la ligne du 10 et 30 parce qu'ils sont déja faite mais non enregistrer

Code:
Dim i As Integer  ' i pour la première boucle qui teste sur le numéro d'ordre si il est identique
Dim j As Integer  ' j pour la deuxième boucle qui teste sur le numéro d'ordre si il est identique
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 Range("B8").End(xlDown).Row ' Range("").End(xlDown).Row : nombre de lignes du tableau excel
For j = i + 1 To Range("B8").End(xlDown).Row
If Range("B" & i).Value = Range("B" & j).Value Then
If Range("D" & i).Value < Range("D" & j).Value - 10 Then

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


End If
End If
Next j
Next i
 

magellan

Modérâleur
Staff
Il serait utile d'avoir un exemple csv (points virgules) pour comprendre précisément ce que tu veux.
Là, je ne saisis pas bien la règle de gestion si ce n'est sous la forme suivante:
numeroordre;operation;
10;10
10;30
10;50
10;60
et en gros on supprime 10 et 30 parce qu'ils sont seuls?

ça me dérange parce que le raisonnement va poser un souci si tu obtiens
10;10
10;30
10;50
10;60
10;80
10;90
Qui supprimer? 80 et 90 se suivent aussi...
 

Zineup

Nouveau membre


ouii c'est sous cette forme numéro d'ordre : Opération
Dans le premier exemple que tu as donné on va supprimer 10 et 30
et dans le deuxiéme exemple on vas supprimé 10 30 50 et 60 il restera juste 80 et 90
 

magellan

Modérâleur
Staff
Meilleure réponse
Alors il faut partir "à l'envers" c'est à dire en partant de la dernière ligne puis en remontant.
En gros l'algo va donner
Tant que((Cell courante-Cell courante1)=10)
Cell courante = cell courante -1
fin tant que
position départ = Cell courante
faire
supprimer ligne courante
jusque(cell courante = 0)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 717 999
Membres
1 586 386
Dernier membre
aviateurdesairs
Partager cette page
Haut