comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiffre ??

thomasmbai

XLDnaute Nouveau
Bonjour à toutes et à tous...


Je crois que tout est dans le titre. Lorsque je demande à ma macro de faire une extraction d'un fichier txt sur excel, j'ai quelques lignes parasites que je suis oblige de supprimer a la main avant de relancer une deuxieme macro. Je voudrais etre capable de dire la chose suivante a ma macro :

Sur la feuille XXXXX si la colonne A des lignes 1 à 250 ne commence pas par un chiffre alors tu supprimes la ligne.

Est ce possible ? Quelle est le code VBA qui retranscrirait ce dont j'ai besoin ?

Merci de votre aide
 

Habitude

XLDnaute Accro
Re : comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiff

Private Sub CommandButton1_Click()
Dim cptLigne As Long
cptLigne = 1
With Feuil1
For j = 2 To 250
If Not IsNumeric(Left(Trim(.Cells(cptLigne, 1)), 1)) Then
.Rows(cptLigne).Delete
cptLigne = cptLigne - 1
End If
cptLigne = cptLigne + 1
Next j
End With
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiff

Bonsoir à tous
Une autre proposition :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim i&, calStat&
   Application.ScreenUpdating = False
   calStat = Application.Calculation
   Application.Calculation = xlCalculationManual
   With Worksheets("Feuil1")
      For i = .[A1].Offset(.Rows.Count - 1, 0).End(xlUp).Row To 1 Step -1
         If Not IsNumeric(Left(LTrim(.Cells(i, 1)), 1)) Then .Rows(i).Delete
      Next
   End With
   Application.Calculation = calStat
   Application.ScreenUpdating = True
End Sub[/B][/COLOR]
ROGER2327
#3654


Dimanche 22 Merdre 137 (Ontogénie pataphysique, SPp)
20 Prairial An CCXVIII
2010-W23-2T21:22:34Z
 

thomasmbai

XLDnaute Nouveau
Re : comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiff

J'ai un soucis...

Avec le premier sub j'obtiens :

Sub durance_phase_1_()

Dim cptLigne As Long
cptLigne = 1
With Worksheets("Manquants Durance")
For j = 2 To 250
If Not IsNumeric(Left(Trim(.Cells(cptLigne, 1)), 1)) Then .Rows(cptLigne).Delete
cptLigne = cptLigne - 1
End If
cptLigne = cptLigne + 1
Next j
End With
End Sub

Message de l'aide "end if sans bloc if" alors que nous avons un if not...


lorsque je mets le deuxieme sub j'obtiens :
Sub durance_phase_1_et_demi()

Dim i&, calStat&
Application.ScreenUpdating = False
calStat = Application.Calculation
Application.Calculation = xlCalculationManual
With Worksheets("Manquants Durance")
For i = .[A1].Offset(.Rows.Count - 1, 0).End(xlUp).Row To 1 Step -1
If Not IsNumeric(Left(LTrim(.Cells(i, 1)), 1))
Then .Rows(i).Delete

Next
End With
Application.Calculation = calStat
Application.ScreenUpdating = True
End Sub

Voici ce que me conseille l'aide : Attendu: <divers>



Merci à ceux qui voudront bien jeter un oeil.
 

Efgé

XLDnaute Barbatruc
Re : comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiff

Bonjour thomasmbai, ROGER2327, Habitude,
Une autre proposition (méthode simple voir simpliste):
Code:
Sub thomasmbai_Test()
Application.ScreenUpdating = False
With Worksheets("Manquants Durance")
    For i = 250 To 2 Step -1
            If Not IsNumeric(Left(Trim(.Cells(i, 1)), 1)) Then .Rows(i & ":" & i).Delete
    Next i
End With
Application.ScreenUpdating = True
End Sub
Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : comment supprimer des lignes en VBA si la colonne A ne commence pas par un chiff

Re...
J'ai un soucis...

Avec le premier sub j'obtiens :

Sub durance_phase_1_()

Dim cptLigne As Long
cptLigne = 1
With Worksheets("Manquants Durance")
For j = 2 To 250
If Not IsNumeric(Left(Trim(.Cells(cptLigne, 1)), 1)) Then .Rows(cptLigne).Delete
cptLigne = cptLigne - 1
End If
cptLigne = cptLigne + 1
Next j
End With
End Sub

Message de l'aide "end if sans bloc if" alors que nous avons un if not...


lorsque je mets le deuxieme sub j'obtiens :
Sub durance_phase_1_et_demi()

Dim i&, calStat&
Application.ScreenUpdating = False
calStat = Application.Calculation
Application.Calculation = xlCalculationManual
With Worksheets("Manquants Durance")
For i = .[A1].Offset(.Rows.Count - 1, 0).End(xlUp).Row To 1 Step -1
If Not IsNumeric(Left(LTrim(.Cells(i, 1)), 1))
Then .Rows(i).Delete

Next
End With
Application.Calculation = calStat
Application.ScreenUpdating = True
End Sub

Voici ce que me conseille l'aide : Attendu: <divers>



Merci à ceux qui voudront bien jeter un oeil.
Ces deux codes ressemblent beaucoup à ceux que nous vous avons proposé. Vous devriez les essayer tel que nous vous les proposons, sans les modifier, car il me semble que vos problèmes proviennent des sauts de ligne que vous avez modifiés ou ajoutés.​
ROGER2327
#3655


Lundi 23 Merdre 137 (Interprétation de l'humour, ST)
21 Prairial An CCXVIII
2010-W23-3T07:42:47Z
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu