VBA effacement de lignes...ma macro en efface trop !

Le
Domi
Bonjour à tous,

Cette macro devrait effacer toutes les lignes dont la colonne H est vide
(après un test), hélas elle efface toutes les lignes, même celles qui
contiennent toujours "VRAI" je ne vois vraiment pas où est l'erreur
VRAI c'est pas vide !
Si je met .Select à la place de Delete tout est sélectionné même les lignes
VRAI je ne comprends pasHELP !

With Range("H11", Range("A65000").End(xlUp).Offset(0, 7))
.FormulaR1C1 = "=COUNTA(RC[-7]:RC[-2])=6"
.Value = .Value
.Replace "FALSE", ""
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

Merci
Domi
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.j
Le #89931
essaie avec celle ci:
Modifie la lettre de la colonne ici : C
Supprime les lignes vides d'un tableau si la colonne C est vide

Sub DétruireLignesiC()
derniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = derniereLigne To 1 Step -1
If IsEmpty(Range("C" & r)) Then Rows(r).Delete
Next r
End Sub

--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm

"Domi"
Bonjour à tous,

Cette macro devrait effacer toutes les lignes dont la colonne H est vide
(après un test), hélas elle efface toutes les lignes, même celles qui
contiennent toujours "VRAI"... je ne vois vraiment pas où est l'erreur...
VRAI c'est pas vide !
Si je met .Select à la place de Delete tout est sélectionné même les lignes
VRAI... je ne comprends pas...HELP !

With Range("H11", Range("A65000").End(xlUp).Offset(0, 7))
.FormulaR1C1 = "=COUNTA(RC[-7]:RC[-2])=6"
.Value = .Value
.Replace "FALSE", ""
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

Merci
Domi




Domi
Le #89705
Merci pour ton aide,
C'est une solution qui fonctionne, mais qui a l'inconvénient d'être beaucoup
plus longue et comme je dois épurer un fichier texte importé de près de
62000 lignes (je suis à la limite du hors-jeu...) ça prends de longues
minutes....
Ce que je ne comprends pas c'est que cette macro que j'utilise tourne
habituellement très vite et très bien dans d'autres applications, mais là il
y a quelques part un grain de sable que je ne vois pas.
Je ne comprends pas ce qui peut faire qu'Excel voit une cellule contenant
VRAI comme vide...

Encore merci
Domi

"Daniel.j"
essaie avec celle ci:
Modifie la lettre de la colonne ici : C
Supprime les lignes vides d'un tableau si la colonne C est vide

Sub DétruireLignesiC()
derniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = derniereLigne To 1 Step -1
If IsEmpty(Range("C" & r)) Then Rows(r).Delete
Next r
End Sub

--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm

"Domi"
Bonjour à tous,

Cette macro devrait effacer toutes les lignes dont la colonne H est vide
(après un test), hélas elle efface toutes les lignes, même celles qui
contiennent toujours "VRAI"... je ne vois vraiment pas où est
l'erreur...


VRAI c'est pas vide !
Si je met .Select à la place de Delete tout est sélectionné même les
lignes


VRAI... je ne comprends pas...HELP !

With Range("H11", Range("A65000").End(xlUp).Offset(0, 7))
.FormulaR1C1 = "=COUNTA(RC[-7]:RC[-2])=6"
.Value = .Value
.Replace "FALSE", ""
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

Merci
Domi








AV
Le #89704
En l'état ta macro fonctionne chez moi
Suggestion : ne pas utiliser de formule intermédiaire mais directement :

Range("H11", Range("A65000").End(xlUp).Offset(0, 7)). _
SpecialCells(xlCellTypeBlanks).EntireRow.Delete

AV

Range("H11", Range("A65000").End(xlUp).Offset(0,
7)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
"Domi"
Merci pour ton aide,
C'est une solution qui fonctionne, mais qui a l'inconvénient d'être beaucoup
plus longue et comme je dois épurer un fichier texte importé de près de
62000 lignes (je suis à la limite du hors-jeu...) ça prends de longues
minutes....
Ce que je ne comprends pas c'est que cette macro que j'utilise tourne
habituellement très vite et très bien dans d'autres applications, mais là il
y a quelques part un grain de sable que je ne vois pas.
Je ne comprends pas ce qui peut faire qu'Excel voit une cellule contenant
VRAI comme vide...

Encore merci
Domi

"Daniel.j"
essaie avec celle ci:
Modifie la lettre de la colonne ici : C
Supprime les lignes vides d'un tableau si la colonne C est vide

Sub DétruireLignesiC()
derniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = derniereLigne To 1 Step -1
If IsEmpty(Range("C" & r)) Then Rows(r).Delete
Next r
End Sub

--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm

"Domi"
Bonjour à tous,

Cette macro devrait effacer toutes les lignes dont la colonne H est vide
(après un test), hélas elle efface toutes les lignes, même celles qui
contiennent toujours "VRAI"... je ne vois vraiment pas où est
l'erreur...


VRAI c'est pas vide !
Si je met .Select à la place de Delete tout est sélectionné même les
lignes


VRAI... je ne comprends pas...HELP !

With Range("H11", Range("A65000").End(xlUp).Offset(0, 7))
.FormulaR1C1 = "=COUNTA(RC[-7]:RC[-2])=6"
.Value = .Value
.Replace "FALSE", ""
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

Merci
Domi












Publicité
Poster une réponse
Anonyme