Boucle if not isempty ... then

Fermé
seblg29 - Modifié par pijaku le 20/05/2016 à 13:38
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 mai 2016 à 13:47
Bonjour,

J'ai quelque soucis pour faire fonctionner ma boucle if not isempty.
Je souhaiterais que celle-ci supprime les lignes ou il n'y a aucune valeur dans la colonne 1, cependant, il doit y avoir une erreur dans ma boucle car "rien ne se passe".

Voici mon code :

Sub Macro1()

For i = 1 To 30
     Workbooks("Crude B_18_05_2016.xlsm").Activate
     Worksheets("Feuil1").Cells(i, 1).Select
      
      If Not IsEmpty(Worksheets("Feuil1").Cells(i, 1).Value) = True Then
      Else
       Range(Cells(i, 1), Cells(i, 1)).EntireRow.Select
       Selection.Delete Shift:=xlUp
       End If
Next

End Sub

Pouvez vous m'aider sur le sujet ?

Vous en remerciant par avance,

cordialement,

Sébastien

3 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par pijaku le 20/05/2016 à 13:38
Bonjour,

voici le bon code (tu n'as pas beosin de mettre = true)

Sub Macro1() 

For i = 1 To 30 
Workbooks("Crude B_18_05_2016.xlsm").Activate 
Worksheets("Feuil1").Cells(i, 1).Select 

If Worksheets("Feuil1").Cells(i, 1).Value) <>"" Then 
Else 
Range(Cells(i, 1), Cells(i, 1)).EntireRow.Select 
Selection.Delete Shift:=xlUp 
End If 
Next 

End Sub
0
Merci pour la réponse !
Par contre à chaque fois qu'une ligne est supprimée,
la boucle for ne le prends pas en compte, il y a de ce fait des lignes qui ne sont pas supprimées.
Avez vous une idée pour corriger ce problème ?

D'avance merci,

cordialement,

sebastien
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 mai 2016 à 13:43
Bonjour
pas besoin de boucler!...
Sub Supprimer_si_vide()
Dim Ligne As Long

On Error Resume Next
Ligne = Columns("A").Find("*", , , , , xlPrevious).Row
Range("A2:A" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 mai 2016 à 14:27
Excusez moi d'avoir dérangé en proposant une solution simple
0
excusez moi,

je n'ai pas votre niveau sous vba...
j'ai essayé votre proposition, sans résultats..
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > seblg29
Modifié par michel_m le 20/05/2016 à 13:48
ce n'est pas une question de niveau !!!!!

cette macro a été utilisée maintes et maintes fois sans problème
D'ailleurs, si ma proposition était erronée, elle ne serait plus dans la EAQ Excel
de DVP publiée en 2009
https://excel.developpez.com/faq/index.php?page=Feuille#SupprimeCellLigneVide
0