OVH Cloud OVH Cloud

Effacement de lignes : plantage douloureux systématique !

4 réponses
Avatar
Domi
Bonsoir à tous,
J'ai une appli qui effectue un certain nombre de traitements sur un fichier.
Chaque traitement se faisant par une petite macro.
Les macros se succèdent, déclenchées successivement à partir d'une macro
"principale".
Tout va bien jusqu'au dernier traitement (suppression de lignes inutiles).
Là, l'application plante systématiquement, lorsqu'elle est lancée à partir
de la macro principale.
Par contre, si je lance ma macro particulière d'effacement, l'effacement des
lignes se fait sans problème.
Ma macro d'effacement est la suivante :

Sub SupprDoublondCdesAnciens()
'Tri prealable
Range("U16", Range("A10000").End(xlUp)).Select
Selection.Sort Key1:=Range("L16"), Order1:=xlAscending,
Key2:=Range("G16" _
), Order2:=xlDescending, Key3:=Range("D16"), Order3:=xlAscending,
Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Test des lignes à effacer
With Range("I16", Range("A10000").End(xlUp).Offset(0, 8))
.FormulaR1C1 = "=RC[3]<>R[-1]C[3]"
.Value = .Value
End With
'Suppression
Range("I16", Range("A10000").End(xlUp).Offset(0, 8)).Replace
What:="FALSE", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False
On Error Resume Next
'C'est là que ça plante !!!!!
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Ca plante systématiquemnt sur la dernière ligne (EntireRow.delete...)
Il y a visiblement un problème en amont, mais je ne vois pas ce qui peut
provoquer cela.
J'ai fais un fichier Test (340ko), un pro voudrait-il y jeter un oeil ? je
galère la dessus depuis pas mal de jour :o( et à chaque fois que je crois
avoir trouvé... ça replante, toujours au même endroit !
Help !
Je suis sous Excel97/Wk2, j'ai fais le test sur une autre machine (W98) même
pb...
Merci
Domi

4 réponses

Avatar
Ellimac
Bonjour,

Effectivement c'est bizarre (mais cela ne nous étonne plus
guère!!).
Essayons une autre méthode de suppression :

Suite au calcul renvoyant Vrai ou faux, faire un tri
décroissant. Sélectionner la colonne et Rechercher "Faux".
Faire un Ctrl+Shift+Flèche bas qui va sélectionner tous
les Faux. Faire un Supprimer Ligne entière.
Tout cela en mode enregistrement pour récupérer le code.

A suivre...

Camille

-----Message d'origine-----
Bonsoir à tous,
J'ai une appli qui effectue un certain nombre de
traitements sur un fichier.

Chaque traitement se faisant par une petite macro.
Les macros se succèdent, déclenchées successivement à
partir d'une macro

"principale".
Tout va bien jusqu'au dernier traitement (suppression de
lignes inutiles).

Là, l'application plante systématiquement, lorsqu'elle
est lancée à partir

de la macro principale.
Par contre, si je lance ma macro particulière
d'effacement, l'effacement des

lignes se fait sans problème.
Ma macro d'effacement est la suivante :

Sub SupprDoublondCdesAnciens()
'Tri prealable
Range("U16", Range("A10000").End(xlUp)).Select
Selection.Sort Key1:=Range("L16"),
Order1:=xlAscending,

Key2:=Range("G16" _
), Order2:=xlDescending, Key3:=Range("D16"),
Order3:=xlAscending,

Header _
:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

'Test des lignes à effacer
With Range("I16", Range("A10000").End(xlUp).Offset(0,
8))

.FormulaR1C1 = "=RC[3]<>R[-1]C[3]"
.Value = .Value
End With
'Suppression
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).Replace

What:="FALSE", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByColumns,
MatchCase:úlse

On Error Resume Next
'C'est là que ça plante !!!!!
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Ca plante systématiquemnt sur la dernière ligne
(EntireRow.delete...)

Il y a visiblement un problème en amont, mais je ne vois
pas ce qui peut

provoquer cela.
J'ai fais un fichier Test (340ko), un pro voudrait-il y
jeter un oeil ? je

galère la dessus depuis pas mal de jour :o( et à chaque
fois que je crois

avoir trouvé... ça replante, toujours au même endroit !
Help !
Je suis sous Excel97/Wk2, j'ai fais le test sur une autre
machine (W98) même

pb...
Merci
Domi


.



Avatar
Domi
Bonjour et merci pour ton aide...
Le pb reste entier :o((( j'ai appliqué ta méthode...Big plantage d'Excel dès
que je choisis supprimer les lignes entières....
Je maintiens ma demande d'une bouée bloup...bloup... :o)

Domi

HS : c'est la zizanie totale sur le serveur Microsoft, mon message original
a disparu, en plus de tas d'autres, le chargement des rescapés est
difficile....
"Ellimac" a écrit dans le
message de news: 161501c387f8$a4bb66d0$
Bonjour,

Effectivement c'est bizarre (mais cela ne nous étonne plus
guère!!).
Essayons une autre méthode de suppression :

Suite au calcul renvoyant Vrai ou faux, faire un tri
décroissant. Sélectionner la colonne et Rechercher "Faux".
Faire un Ctrl+Shift+Flèche bas qui va sélectionner tous
les Faux. Faire un Supprimer Ligne entière.
Tout cela en mode enregistrement pour récupérer le code.

A suivre...

Camille

-----Message d'origine-----
Bonsoir à tous,
J'ai une appli qui effectue un certain nombre de
traitements sur un fichier.

Chaque traitement se faisant par une petite macro.
Les macros se succèdent, déclenchées successivement à
partir d'une macro

"principale".
Tout va bien jusqu'au dernier traitement (suppression de
lignes inutiles).

Là, l'application plante systématiquement, lorsqu'elle
est lancée à partir

de la macro principale.
Par contre, si je lance ma macro particulière
d'effacement, l'effacement des

lignes se fait sans problème.
Ma macro d'effacement est la suivante :

Sub SupprDoublondCdesAnciens()
'Tri prealable
Range("U16", Range("A10000").End(xlUp)).Select
Selection.Sort Key1:=Range("L16"),
Order1:=xlAscending,

Key2:=Range("G16" _
), Order2:=xlDescending, Key3:=Range("D16"),
Order3:=xlAscending,

Header _
:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

'Test des lignes à effacer
With Range("I16", Range("A10000").End(xlUp).Offset(0,
8))

.FormulaR1C1 = "=RC[3]<>R[-1]C[3]"
.Value = .Value
End With
'Suppression
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).Replace

What:="FALSE", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByColumns,
MatchCase:úlse

On Error Resume Next
'C'est là que ça plante !!!!!
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Ca plante systématiquemnt sur la dernière ligne
(EntireRow.delete...)

Il y a visiblement un problème en amont, mais je ne vois
pas ce qui peut

provoquer cela.
J'ai fais un fichier Test (340ko), un pro voudrait-il y
jeter un oeil ? je

galère la dessus depuis pas mal de jour :o( et à chaque
fois que je crois

avoir trouvé... ça replante, toujours au même endroit !
Help !
Je suis sous Excel97/Wk2, j'ai fais le test sur une autre
machine (W98) même

pb...
Merci
Domi


.



Avatar
Ellimac
Bonjour,

Tu peux m'envoyer une copie de ton fichier si tu veux :



Camille

-----Message d'origine-----
Bonjour et merci pour ton aide...
Le pb reste entier :o((( j'ai appliqué ta méthode...Big
plantage d'Excel dès

que je choisis supprimer les lignes entières....
Je maintiens ma demande d'une bouée bloup...bloup... :o)

Domi

HS : c'est la zizanie totale sur le serveur Microsoft,
mon message original

a disparu, en plus de tas d'autres, le chargement des
rescapés est

difficile....
"Ellimac" a
écrit dans le

message de news: 161501c387f8$a4bb66d0$
Bonjour,

Effectivement c'est bizarre (mais cela ne nous étonne plus
guère!!).
Essayons une autre méthode de suppression :

Suite au calcul renvoyant Vrai ou faux, faire un tri
décroissant. Sélectionner la colonne et Rechercher "Faux".
Faire un Ctrl+Shift+Flèche bas qui va sélectionner tous
les Faux. Faire un Supprimer Ligne entière.
Tout cela en mode enregistrement pour récupérer le code.

A suivre...

Camille

-----Message d'origine-----
Bonsoir à tous,
J'ai une appli qui effectue un certain nombre de
traitements sur un fichier.

Chaque traitement se faisant par une petite macro.
Les macros se succèdent, déclenchées successivement à
partir d'une macro

"principale".
Tout va bien jusqu'au dernier traitement (suppression de
lignes inutiles).

Là, l'application plante systématiquement, lorsqu'elle
est lancée à partir

de la macro principale.
Par contre, si je lance ma macro particulière
d'effacement, l'effacement des

lignes se fait sans problème.
Ma macro d'effacement est la suivante :

Sub SupprDoublondCdesAnciens()
'Tri prealable
Range("U16", Range("A10000").End(xlUp)).Select
Selection.Sort Key1:=Range("L16"),
Order1:=xlAscending,

Key2:=Range("G16" _
), Order2:=xlDescending, Key3:=Range("D16"),
Order3:=xlAscending,

Header _
:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

'Test des lignes à effacer
With Range("I16", Range("A10000").End(xlUp).Offset(0,
8))

.FormulaR1C1 = "=RC[3]<>R[-1]C[3]"
.Value = .Value
End With
'Suppression
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).Replace

What:="FALSE", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByColumns,
MatchCase:úlse

On Error Resume Next
'C'est là que ça plante !!!!!
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Ca plante systématiquemnt sur la dernière ligne
(EntireRow.delete...)

Il y a visiblement un problème en amont, mais je ne vois
pas ce qui peut

provoquer cela.
J'ai fais un fichier Test (340ko), un pro voudrait-il y
jeter un oeil ? je

galère la dessus depuis pas mal de jour :o( et à chaque
fois que je crois

avoir trouvé... ça replante, toujours au même endroit !
Help !
Je suis sous Excel97/Wk2, j'ai fais le test sur une autre
machine (W98) même

pb...
Merci
Domi


.




.




Avatar
AV
Ave Domi,

S'il s'agit du fichier dont tu m'as envoyé un extrait (pour une autre problème),
je te conseille d'exécuter pas à pas (F8) la macro "mère" et voir ou ça bogue

AV

"Domi" a écrit dans le message news:

Bonjour et merci pour ton aide...
Le pb reste entier :o((( j'ai appliqué ta méthode...Big plantage d'Excel dès
que je choisis supprimer les lignes entières....
Je maintiens ma demande d'une bouée bloup...bloup... :o)

Domi

HS : c'est la zizanie totale sur le serveur Microsoft, mon message original
a disparu, en plus de tas d'autres, le chargement des rescapés est
difficile....
"Ellimac" a écrit dans le
message de news: 161501c387f8$a4bb66d0$
Bonjour,

Effectivement c'est bizarre (mais cela ne nous étonne plus
guère!!).
Essayons une autre méthode de suppression :

Suite au calcul renvoyant Vrai ou faux, faire un tri
décroissant. Sélectionner la colonne et Rechercher "Faux".
Faire un Ctrl+Shift+Flèche bas qui va sélectionner tous
les Faux. Faire un Supprimer Ligne entière.
Tout cela en mode enregistrement pour récupérer le code.

A suivre...

Camille

-----Message d'origine-----
Bonsoir à tous,
J'ai une appli qui effectue un certain nombre de
traitements sur un fichier.

Chaque traitement se faisant par une petite macro.
Les macros se succèdent, déclenchées successivement à
partir d'une macro

"principale".
Tout va bien jusqu'au dernier traitement (suppression de
lignes inutiles).

Là, l'application plante systématiquement, lorsqu'elle
est lancée à partir

de la macro principale.
Par contre, si je lance ma macro particulière
d'effacement, l'effacement des

lignes se fait sans problème.
Ma macro d'effacement est la suivante :

Sub SupprDoublondCdesAnciens()
'Tri prealable
Range("U16", Range("A10000").End(xlUp)).Select
Selection.Sort Key1:=Range("L16"),
Order1:=xlAscending,

Key2:=Range("G16" _
), Order2:=xlDescending, Key3:=Range("D16"),
Order3:=xlAscending,

Header _
:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

'Test des lignes à effacer
With Range("I16", Range("A10000").End(xlUp).Offset(0,
8))

.FormulaR1C1 = "=RC[3]<>R[-1]C[3]"
.Value = .Value
End With
'Suppression
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).Replace

What:="FALSE", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByColumns,
MatchCase:úlse

On Error Resume Next
'C'est là que ça plante !!!!!
Range("I16", Range("A10000").End(xlUp).Offset(0,
8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Ca plante systématiquemnt sur la dernière ligne
(EntireRow.delete...)

Il y a visiblement un problème en amont, mais je ne vois
pas ce qui peut

provoquer cela.
J'ai fais un fichier Test (340ko), un pro voudrait-il y
jeter un oeil ? je

galère la dessus depuis pas mal de jour :o( et à chaque
fois que je crois

avoir trouvé... ça replante, toujours au même endroit !
Help !
Je suis sous Excel97/Wk2, j'ai fais le test sur une autre
machine (W98) même

pb...
Merci
Domi


.