ajouter un complément à une macro de Boisgontier

urbanito1

XLDnaute Occasionnel
bonjour au forum

pour supprimer lignes vides j'ai trouvé la macro de Boisgontier,

résultat impeccable

je voudrais y ajouter la suppression des cellules contenant un résultat de ce type : 0000:00

je joins mon fichier test

merci

urbanito1
 

Pièces jointes

  • LISTING HEURES ANNUELLES.xlsm
    97.5 KB · Affichages: 39

david84

XLDnaute Barbatruc
Re : ajouter un complément à une macro de Boisgontier

Bonjour,
as-tu simplement testé en ajoutant ce critère à la condition ?
Code:
If Application.CountA(Rows(i)) = 0 Or Application.CountIf(Rows(i), "0000:00") > 0 Then a(i) = "sup" Else a(i) = 0
A+
 

urbanito1

XLDnaute Occasionnel
Re : ajouter un complément à une macro de Boisgontier

david84,
merci

en testant les lignes contenant des cellules avec 0000:00 disparaissent également

peut - être n'ai je pas bien mis l'ajout du code dans la macro...j'ai essayé plusieurs possibilités ?

urbanito1

Sub supLignesRapide()
t = Timer()
Application.ScreenUpdating = False
n = [A65000].End(xlUp).Row
Dim a()
ReDim a(1 To n)
For i = 2 To n
If Application.CountA(Rows(i)) = 0 Then a(i) = "sup" Else a(i) = 0
If Application.CountA(Rows(i)) = 0 Or Application.CountIf(Rows(i), "0000:00") > 0 Then a(i) = "sup" Else a(i) = 0
Next i
Columns("b:b").Insert Shift:=xlToRight
[B1].Resize(n) = Application.Transpose(a)
[A1].CurrentRegion.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes
On Error Resume Next
Range("B2:B65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
Columns("b:b").Delete Shift:=xlToLeft
If Application.CountA(Rows(i)) = 0 Or Application.CountIf(Rows(i), "0000:00") > 0 Then a(i) = "sup" Else a(i) = 0
MsgBox Timer() - t
End Sub
 

Pièces jointes

  • LISTING HEURES ANNUELLES V1.xlsm
    97.5 KB · Affichages: 12
  • LISTING HEURES ANNUELLES V1.xlsm
    97.5 KB · Affichages: 18

urbanito1

XLDnaute Occasionnel
Re : ajouter un complément à une macro de Boisgontier

bonjour le forum
david84

oui effectivement
mais je pense m'être mal exprimé, désolé

il se produit une suppression de la ligne complète
ce que je souhaite c'est de laisser vides les cellules contenant "0000:00"

j'espère que c'est plus clair

merci
 

david84

XLDnaute Barbatruc
Re : ajouter un complément à une macro de Boisgontier

Bonjour,
donc tu oublies ma proposition.
Il te faut donc remplacer "0000:00" par rien.
L'enregistreur de macro te donne la syntaxe suivante (d'où l'intérêt de l'utiliser) :
Code:
Cells.Replace What:="0000:00", Replacement:="", LookAt:=xlPart, _    
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
En plaçant cette partie en fin de procédure cela donne le résultat voulu.
Si tu veux restreindre le Replace à la plage contenant les lignes à traiter remplace le Cells par un Range("la_plage_à_traiter") car Cells.Replace traite toutes les cellules de la feuille de calcul.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib