Dans mon fichier Excel, j'aimerais supprimer les lignes à 0 dans mes colonnes D et E. Mais dans ces 2 colonnes D peut être à 0 mais pas E et inversement.
Je n'arrive pas à trouver le VBA correspondant. Je n'ai trouvé que pour la colonne D mais ça efface E même si la c'est supérieur à 0.
Voici le fichier test. Les dates en 00/01/1900 sont normales c'est que dans mon autre fichier je n'ai pas de date. Donc je souhaite les supprimer aussi. Dans le fichier j'ai presque 700 lignes et je veux importer dans mon logiciel que les lignes donc les valeurs sont supérieurs à 0.
Sa me donne ça en VBA :
Option Explicit
Sub Test()
Dim Lig%
Application.ScreenUpdating = 0
For Lig = [D65536].End(xlUp).Row To 1 Step -1
If Cells(N, "D") = 0 And Cells(N, "E") = 0 Then Cells(N, 1).EntireRow.Delete
Next
End Sub
Ben évidemment, si votre variable s'appelle Lig et que vous accéder à la cellule de la ligne N, ça bogue.
Essayez ça, c'est mieux :
VB:
Sub Test()
Dim Lig#
Application.ScreenUpdating = 0
For Lig = [D65535].End(xlUp).Row To 1 Step -1
If Cells(Lig, "D") = 0 And Cells(Lig, "E") = 0 Then Cells(Lig, 1).EntireRow.Delete
Next
End Sub
De plus Lig% veut dire Integer donc limité à 32767. A remplacer par double si vous allez au delà de ce nombre. Ou alors vous faites For Lig = [D32767].End(xlUp).Row To 1 Step -1 avec Lig%
Ben évidemment, si votre variable s'appelle Lig et que vous accéder à la cellule de la ligne N, ça bogue.
Essayez ça, c'est mieux :
VB:
Sub Test()
Dim Lig#
Application.ScreenUpdating = 0
For Lig = [D65535].End(xlUp).Row To 1 Step -1
If Cells(Lig, "D") = 0 And Cells(Lig, "E") = 0 Then Cells(Lig, 1).EntireRow.Delete
Next
End Sub
De plus Lig% veut dire Integer donc limité à 32767. A remplacer par double si vous allez au delà de ce nombre. Ou alors vous faites For Lig = [D32767].End(xlUp).Row To 1 Step -1 avec Lig%