Différence de date et suppression de ligne

emmanuelavril

XLDnaute Nouveau
Bonjour à tous,

J'ai une date stocké dans la cellule B20 de la feuille "GENERAL", et j'ai une autre feuille de données intitulée "NAVISION", avec entre autres une colonne de dates.
Je souhaite faire un programme qui analyse toute cette colonne et supprime la ligne si la date est str. supérieur à la date contenue en B20 de la feuille general.
Cependant je n'arrive pas à calculer cette différence. Mon programme ressemble à ca:

Dim x As Integer
For x = Range("B65536").End(xlUp).Row To 1 Step -1
If (différence de date >0)Then Rows(x).Delete
Next

Merci si quelqu'un peut m'aider, je suis vraiment débutant en vba et je me prend la tête là-dessus depuis pas mal de temps.

Merci

++
 

Efgé

XLDnaute Barbatruc
Re : Différence de date et suppression de ligne

Bonjour emmanuelavril,
Avec ce que j'ai compris et en partant du principe que les dates à vérifier sont en colonne B de la feuille NAVISION :
Code:
[COLOR=BLUE]Sub[/COLOR] emmanuelavril()
[COLOR=BLUE]Dim[/COLOR] x [COLOR=BLUE]As Long[/COLOR]
Var = Sheets("GENERAL").Range("F3")
[COLOR=BLUE]For[/COLOR] x = Sheetts("NAVISION").Range("B65536").End(xlUp).Row [COLOR=BLUE]To[/COLOR] 1 [COLOR=BLUE]Step[/COLOR] -1
    [COLOR=BLUE]If[/COLOR] Sheetts("NAVISION").Cells(i, [COLOR=red][B]2[/B][/COLOR]).Value > Var [COLOR=BLUE]Then[/COLOR] Rows(x).Delete
[COLOR=BLUE]Next[/COLOR]
[COLOR=BLUE]End Sub[/COLOR]
Dim x As long au cas ou...
En rouge le numéro de la colonne (ici 2 donc B)
Cordialement
 

emmanuelavril

XLDnaute Nouveau
Re : Différence de date et suppression de ligne

Merci Efgé de me repondre,

Voilà le code que j'ai marqué:

Dim y As Long
Var = Sheets("GENERAL").Range("B20")
For y = Sheets("NAVISION").Range("C65536").End(xlUp).Row To 2 Step -1
If Sheets("NAVISION").Cells(i, 3).Value > Var Then Rows(y).Delete
Next

J'ai presque rien changé, à part la cellule de VAR, j'ai du mettre un y car dans ma macro le x est déjà défini, et colonne C au lieu de B mais c'est tout.
J'ai une erreur 1004 avec "If Sheets("NAVISION").Cells(i, 3).Value > Var Then" surligné en jaune, avec le message "erreur définie par l'application ou par l'objet".

Merci de me dire si tu as une idée.

++
 

Efgé

XLDnaute Barbatruc
Re : Différence de date et suppression de ligne

Re
Si tu change le nom de la varable dans la déclaration
Code:
For [COLOR=red][B]y[/B][/COLOR] = Sheets("NAVISION").Range("C65536").End(xlUp).Row To 1 Step -1
Il faut aussis le changer dans son utilisation
Code:
If Sheets("NAVISION").Cells([COLOR=red][B]y[/B][/COLOR], 3).Value > Var Then Rows([COLOR=red][B]y[/B][/COLOR]).Delete
Ce qui donne:
Code:
[COLOR=blue]Sub[/COLOR] emmanuelavril()
[COLOR=blue]Dim[/COLOR] y [COLOR=blue]As Long[/COLOR]
Var = Sheets("GENERAL").Range("B20")
[COLOR=blue]For[/COLOR] y = Sheets("NAVISION").Range("C65536").End(xlUp).Row [COLOR=blue]To[/COLOR] 1 [COLOR=blue]Step[/COLOR] -1
    [COLOR=blue]If[/COLOR] Sheets("NAVISION").Cells(y, 3).Value > Var [COLOR=blue]Then[/COLOR] Rows(y).Delete
[COLOR=blue]Next[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll