Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro VBA pour supprimer des lignes

6 réponses
Avatar
Sunburn
Bonjour, j'ai un soucis avec ma macro. elle fonctionnait très bien sous les
versions plus anciennes de mon code, mais là ça bug, je ne comprend pas
pourquoi, je n'ai rien changé.
*** il me met un message " Erreur d'execution 1004, erreur définie par
l'application ou par l'objet", et la ligne "ActiveCell.Offset(-1, 0).Select"
en jaune.
***le code ne met pas de message d'erreur si je met "B1" au lieu de "C1"
Le but est de supprimer les lignes dont la colonne "C" est comprise entre
100000 et 99999999.
Je ne comprend pas pourquoi il fini son travail sur la colone B, car si je
ne garde que le code de sélection, il sélectionne la celulle "C2112", la
dernière cellule acttive de la feuille.

Meric de votre aide, voici mon code
------------------------------------
Sub SUPPRIMEBAL()
'Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
---------------------------------

6 réponses

Avatar
Péhemme
Bonjour,,

N'y a-t-il pas une confusion entre une feuille nommée C et la colonne C sur
laquelle tu souhaites appliquer tes instructions ?

Michel

"Sunburn" a écrit dans le message de
news:
Bonjour, j'ai un soucis avec ma macro. elle fonctionnait très bien sous
les
versions plus anciennes de mon code, mais là ça bug, je ne comprend pas
pourquoi, je n'ai rien changé.
*** il me met un message " Erreur d'execution 1004, erreur définie par
l'application ou par l'objet", et la ligne "ActiveCell.Offset(-1,
0).Select"
en jaune.
***le code ne met pas de message d'erreur si je met "B1" au lieu de "C1"
Le but est de supprimer les lignes dont la colonne "C" est comprise entre
100000 et 99999999.
Je ne comprend pas pourquoi il fini son travail sur la colone B, car si je
ne garde que le code de sélection, il sélectionne la celulle "C2112", la
dernière cellule acttive de la feuille.

Meric de votre aide, voici mon code
------------------------------------
Sub SUPPRIMEBAL()
'Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
---------------------------------


Avatar
Sunburn
Michel,
ben, je ne vois pas où ça peut se confondre, car j'ai utilisé sheets pour la
feuille et range pour la celule.
Yann


Bonjour,,

N'y a-t-il pas une confusion entre une feuille nommée C et la colonne C sur
laquelle tu souhaites appliquer tes instructions ?

Michel


Avatar
Jacky
Bonjour,

Bien que ton code fonctionne chez moi(sans trop approfondir), j'aurais une
préférence pour celui-ci
'-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("C").Activate
For i = Cells(Rows.Count, "c").End(3).Row To 2 Step -1
If Cells(i, 3) > 100000 And Cells(i, 3) < 999999999 Then Rows(i).Delete
Next
Application.Calculation = xlCalculationAutomatic
End Sub

'----------------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
Bonjour, j'ai un soucis avec ma macro. elle fonctionnait très bien sous
les
versions plus anciennes de mon code, mais là ça bug, je ne comprend pas
pourquoi, je n'ai rien changé.
*** il me met un message " Erreur d'execution 1004, erreur définie par
l'application ou par l'objet", et la ligne "ActiveCell.Offset(-1,
0).Select"
en jaune.
***le code ne met pas de message d'erreur si je met "B1" au lieu de "C1"
Le but est de supprimer les lignes dont la colonne "C" est comprise entre
100000 et 99999999.
Je ne comprend pas pourquoi il fini son travail sur la colone B, car si je
ne garde que le code de sélection, il sélectionne la celulle "C2112", la
dernière cellule acttive de la feuille.

Meric de votre aide, voici mon code
------------------------------------
Sub SUPPRIMEBAL()
'Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
---------------------------------


Avatar
Sunburn
Je te remercie Jacky, ce code fonctionne nikel bien chez moi aussi.
Merci beaucoup.
Yann


Bonjour,

Bien que ton code fonctionne chez moi(sans trop approfondir), j'aurais une
préférence pour celui-ci
'-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("C").Activate
For i = Cells(Rows.Count, "c").End(3).Row To 2 Step -1
If Cells(i, 3) > 100000 And Cells(i, 3) < 999999999 Then Rows(i).Delete
Next
Application.Calculation = xlCalculationAutomatic
End Sub

'----------------

--
Salutations
JJ


"Sunburn" a écrit dans le message de
news:
Bonjour, j'ai un soucis avec ma macro. elle fonctionnait très bien sous
les
versions plus anciennes de mon code, mais là ça bug, je ne comprend pas
pourquoi, je n'ai rien changé.
*** il me met un message " Erreur d'execution 1004, erreur définie par
l'application ou par l'objet", et la ligne "ActiveCell.Offset(-1,
0).Select"
en jaune.
***le code ne met pas de message d'erreur si je met "B1" au lieu de "C1"
Le but est de supprimer les lignes dont la colonne "C" est comprise entre
100000 et 99999999.
Je ne comprend pas pourquoi il fini son travail sur la colone B, car si je
ne garde que le code de sélection, il sélectionne la celulle "C2112", la
dernière cellule acttive de la feuille.

Meric de votre aide, voici mon code
------------------------------------
Sub SUPPRIMEBAL()
'Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
---------------------------------







Avatar
Péhemme
Ce n'était qu'une simple question car ta macro fonctionnait bien chez moi.
Mais je vois avec plaisir que notre ami Jacky (que j'espère revoir bientôt
en Auvergne) t'a donné une réponse qui te convient.
Amicalement
Michel

"Sunburn" a écrit dans le message de
news:
Michel,
ben, je ne vois pas où ça peut se confondre, car j'ai utilisé sheets pour
la
feuille et range pour la celule.
Yann


Bonjour,,

N'y a-t-il pas une confusion entre une feuille nommée C et la colonne C
sur
laquelle tu souhaites appliquer tes instructions ?

Michel




Avatar
Jacky
Bonjour Michel,

...que j'espère revoir bientôt en Auvergne....


Hélas, 3 fois hélas
J'ai déjà entrepris de faire des travaux aux dates retenues pour cette
aventure.
Je vais tout de même voir si je peux modifier la date des
intervenants.
--
Amicalement
JJ


"Péhemme" a écrit dans le message de news:
%
Ce n'était qu'une simple question car ta macro fonctionnait bien chez moi.

Michel

"Sunburn" a écrit dans le message de
news:
Michel,
ben, je ne vois pas où ça peut se confondre, car j'ai utilisé sheets pour
la
feuille et range pour la celule.
Yann


Bonjour,,

N'y a-t-il pas une confusion entre une feuille nommée C et la colonne C
sur
laquelle tu souhaites appliquer tes instructions ?

Michel