VBA effacement de lignes...ma macro en efface trop !
3 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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" a écrit dans le message de news:
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
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" <scrat83@free.fr> a écrit dans le message de news:
ee2UxgDVDHA.2544@tk2msftngp13.phx.gbl...
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
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" a écrit dans le message de news:
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
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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
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" <dj.joss@free.fr> a écrit dans le message de news:
uYSjxEEVDHA.2564@tk2msftngp13.phx.gbl...
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" <scrat83@free.fr> a écrit dans le message de news:
ee2UxgDVDHA.2544@tk2msftngp13.phx.gbl...
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 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" a écrit dans le message de news:
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" a écrit dans le message de news:
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
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 "Domi" a écrit dans le message news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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
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
"Domi" <scrat83@free.fr> a écrit dans le message news:
u4y5ZhEVDHA.2272@TK2MSFTNGP11.phx.gbl...
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" <dj.joss@free.fr> a écrit dans le message de news:
uYSjxEEVDHA.2564@tk2msftngp13.phx.gbl...
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" <scrat83@free.fr> a écrit dans le message de news:
ee2UxgDVDHA.2544@tk2msftngp13.phx.gbl...
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
Range("H11", Range("A65000").End(xlUp).Offset(0, 7)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete "Domi" a écrit dans le message news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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