Différence de date et suppression de ligne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

++
 
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
 
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.

++
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour