Suppression de ligne VBA

steaker59 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais supprimer les lignes non numéric et garder les intitulé de colonne avec les donnée ci-dessous.
Des ligne se rajoute en row A, B, C.. et ainsi de suite.

Sub num()
Date_j = "_" & Left(Date, 2) & "_" & Mid(Date, 4, 2) & "_" & Right(Date, 2)
With Application.FileSearch
.LookIn = ActiveWorkbook.Path
.Filename = "Controle" & Date_j & ".xls"
If .Execute > 0 Then

For i = 1 To .FoundFiles.Count

Workbooks.Open (.FoundFiles(i))
Application.DisplayAlerts = False

If IsNumeric("A2") = False Then // je regarde ci sa correspond a mes donnée
Rows("1:1").Select
Selection.Delete Shift:=xlUp

Application.DisplayAlerts = True
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
Next i
End If
End With
End Sub

rien ne se passe.. aidez moi plzzzz

3 réponses

  1. steaker59 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
     
    je ne comprend pas pourtant il trouve mon fichier..je ne sais plus quoi faire
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour

    If  not IsNumeric(range("A2"))  Then 'je regarde si ça correspond a mes données
    Rows(1).Delete


    je ne comprend pas l'utilité de ton displayalerts surtout que si dans le dernier fichier (i) la condition n'est pas remplie, tu gardes définitivement displayalerts désactivé
    (displayalerts est très délicat à manipuler)

    Comme tu ouvres des fichiers, tu as + qu'intéret à figer l'écran par cette inscruction avanr la boucle (pour éviter les clignotements et ralentir considérablement la macro)
    application.screenupdating=False
    0
    1. steaker59 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
       
      merci michel meme si mon programme n'est pas encore au point aujourd'hui sa me fai avancer ;)
      0
    2. steaker59 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
       
      decidement sa ne marche toujours pas..je reste bloquer. cette fois sa agi bien sur le fichier mais la macro est considerablement longue à s'executer..
      Rapell: je souhaite supprimer les lignes de trop et garder les entete de colonne avec mes donnée

      Sub num()
      Date_j = "_" & Left(Date, 2) & "_" & Mid(Date, 4, 2) & "_" & Right(Date, 2)
      With Application.FileSearch
      .LookIn = ActiveWorkbook.Path
      .Filename = "Controle" & Date_j & ".xls"
      If .Execute > 0 Then
      Application.ScreenUpdating = False

      For i = 1 To .FoundFiles.Count
      Workbooks.Open (.FoundFiles(i))
      Do While IsNumeric("A2") = False
      Rows(1).Select
      Selection.Delete Shift:=xlUp
      Loop
      Next i

      End If
      End With
      ActiveWorkbook.Save
      ActiveWorkbook.Close
      End Sub

      La fonction isnumeric prend en compte le format standard comme un numeric ??
      0
    3. steaker59 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
       
      pr info g plutot mi do while not plutot
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour
    La fonction isnumeric prend en compte le format standard comme un numeric ??

    je me suis donné la peine de te donner la bonne syntaxe! si tu ne me crois pas, regarde l'aide...

    Rapell: je souhaite supprimer les lignes de trop et garder les entete de colonne avec mes donnée

    actuellement tu regardes si A2 n'est pas un nombre et alors tu détruis la ligne 1 et tu passes au classeur suivant...

    d'autre part tu laisses touts les fichiers ouverts sans les sauvegarder; par contre tu sauvegardes le classeur de la macro et tu demandes de fermer le classeur...

    enfin, il risque fort d'avoir des problèmes avec filesearch si tu passes en XL2007

    question temps, si tu persistes à utiliser des select-selection malgré ce que je t'ai proposé, ce n'est pas ça qui va diminuer le temps d'exécution....

    donc, précises clairement ce que tu veux faire au besoin en mettant un des classeurs en pièce jointe et qqn pourra t'aider
    0