code vba pour suppression de lignes

oliv67

XLDnaute Occasionnel
bonjour le forum

je suis confronté à un pb
dans le code vba de cette action

Sub Supprimer()
Dim i As Integer

Application.ScreenUpdating = False
For c = Range("p65536").End(xlUp).Row To 2 Step -1
If Not IsNumeric(Cells(c, "a")) Then
Cells(c, "a").EntireRow.Delete Shift:=xlUp
End If
Next
End Sub

dans la 3eme ligne de code qui commence par For c etc...
c=1
alors qu'il devrait etre = à 4

je ne comprends pas

olivier
 

Pièces jointes

  • Test840.zip
    19.2 KB · Affichages: 29
  • Test840.zip
    19.2 KB · Affichages: 30
  • Test840.zip
    19.2 KB · Affichages: 28

Cousinhub

XLDnaute Barbatruc
Re : code vba pour suppression de lignes

Bonjour,
ton code est écrit dans l'évènement de la feuille 1, donc il prend en référence la feuille 1....
Inscrit ton code dans un module standard comme ceci :

Code:
Sub Supprimer()
Dim i As Integer

Application.ScreenUpdating = False
For c = Sheets("import").Range("p65536").End(xlUp).Row To 2 Step -1
If Not IsNumeric(Cells(c, "p")) Then
Cells(c, "a").EntireRow.Delete Shift:=xlUp
End If
Next
End Sub

que tu peux remplacer par ceci :

Code:
Sub Macro3()
    Sheets("import").Columns("P:P").SpecialCells(xlCellTypeConstants, 22).EntireRow.Delete
End Sub
 

gilbert_RGI

XLDnaute Barbatruc
Re : code vba pour suppression de lignes

bonjour le forum

je suis confronté à un pb
dans le code vba de cette action

Sub Supprimer()
Dim i As Integer

Application.ScreenUpdating = False
For c = Range("p65536").End(xlUp).Row To 2 Step -1
If Not IsNumeric(Cells(c, "a")) Then
Cells(c, "a").EntireRow.Delete Shift:=xlUp
End If
Next
End Sub

dans la 3eme ligne de code qui commence par For c etc...
c=1
alors qu'il devrait etre = à 4

je ne comprends pas

olivier

Bonjour

regardez où est placé votre code !!!

Je crois qu'il devrait être dans la feuille ("Import") pour marquer 4
comme il est dans la feuille 1 en P il n'y a rien

Cdlt

RGI
 

pierrejean

XLDnaute Barbatruc
Re : code vba pour suppression de lignes

bonjour oliv67

Ta macro est dans le code de la feuil1
Comme la feuille n'est pas specifiée en tete de For c= Range .... elle opere sur la feuil1
tu devrais soit mettre le code dans la feuille concernée , soit dans un module et metre alors quelque chose comme

For c= Activesheet.range.....

Toujours a la bourre moi !

Salut bhbh :)
Salut Gilbert :)
 

oliv67

XLDnaute Occasionnel
Re : code vba pour suppression de lignes

merci beaucoup à tout le forum et en particulier à pierrejean,gilbert_RGI,bhbh.

j'ai réussi à faire fonctionner ma macro avec la solution de pierrejean.

mais je suis curieux , avec exemple de m'expliquer comment mettre le code dans le module.


merci à vous tous


olivier
 

pierrejean

XLDnaute Barbatruc
Re : code vba pour suppression de lignes

re

Voila ton fichier avec la macro dans le module 1
mais avec une petite modif concernant la cellule de reference (P et non a)

Code:
Sub supprimer()
MsgBox ("oui")
Application.ScreenUpdating = False
For c = ActiveSheet.Range("p65536").End(xlUp).Row To 2 Step -1
If Not IsNumeric(Cells(c, "[COLOR=red]P[/COLOR]")) Then
  Cells(c, "[COLOR=red]P[/COLOR]").EntireRow.Delete Shift:=xlUp
End If
Next
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • test840.zip
    13.7 KB · Affichages: 21
  • test840.zip
    13.7 KB · Affichages: 22
  • test840.zip
    13.7 KB · Affichages: 21

Discussions similaires

Réponses
1
Affichages
205

Statistiques des forums

Discussions
312 612
Messages
2 090 229
Membres
104 453
dernier inscrit
benjiii88