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

code a verifier?

13 réponses
Avatar
Lionel
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne "autorisée"
puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25 And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And r <>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <> 77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101 And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel

10 réponses

1 2
Avatar
Pascal
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne "autorisée"
puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And r
<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <> 77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel




---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 17:58:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 18:02:10
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

Avatar
Jacky
Bonsoir,
Essaie comme cela....
'--------
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Exit Sub
Next
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Application.ScreenUpdating = False
End Sub
'-------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne "autorisée"
puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And r
<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <> 77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel




Avatar
Lionel
re...

Oui je selectionne ces lignes là uniquement car je ne veux pas effacer par
erreur les données des autres lignes...
par ailleurs, ca n'explique pas la lenteur ...


"Pascal" a écrit dans le message de news:
46040812$0$25933$
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And
r


<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <>
77


And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub


Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel




---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 17:58:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 18:02:10
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






Avatar
Lionel
Bonsoir
Dans ton code je ne comprends pas le test
i = r ? de tete ton code semble faire l'inverse du voulu
car je veux uniquement la possiblité de l'effacement des lignes 5,9,etc

"Jacky" a écrit dans le message de news:

Bonsoir,
Essaie comme cela....
'--------
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Exit Sub
Next
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Application.ScreenUpdating = False
End Sub
'-------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And
r


<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <>
77


And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub


Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel








Avatar
Jacky
Re..
par ailleurs, ca n'explique pas la lenteur ...
C'est ben Vrai ça!!!!

Si ce code est lent, cela vient d'ailleurs :-((

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
460411e5$0$27396$
re...

Oui je selectionne ces lignes là uniquement car je ne veux pas effacer par
erreur les données des autres lignes...
par ailleurs, ca n'explique pas la lenteur ...


"Pascal" a écrit dans le message de news:
46040812$0$25933$
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And
r


<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <>
77


And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <>
101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub


Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel




---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 17:58:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000727-0, 22/03/2007
Analyse le : 23/03/2007 18:02:10
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com










Avatar
Gilles MOUGNOZ
Bonjour, Lionel
En complément de la réponse de Jacky, je ne résiste pas à la tentation de te
faire connaître une nouvelle instruction VBA.
Les lignes que tu souhaites effacer semblent répondre à la règle que Jacky a
transcrite par une boucle For.
Si cette règle devait changer, je te propose d'écrire explicitement dans le
code les numéros des lignes qui t'intéressent.
Pour cela, l'instruction Select Case est toute indiquée:
Select Case r
Case 5,9,....,121:
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Case Else:
MsgBox "Non autorisé"
end select

--
Bonne continuation

Bonsoir
Dans ton code je ne comprends pas le test
i = r ? de tete ton code semble faire l'inverse du voulu
car je veux uniquement la possiblité de l'effacement des lignes 5,9,etc
Bonsoir,
Essaie comme cela....
'--------
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Exit Sub
Next
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Application.ScreenUpdating = False
End Sub
'-------------
--
Salutations
JJ
bonjour
Voici un code
Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And
r


<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <>
77


And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <>
101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub


Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub
seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme
Merci d'avance
Lionel






Avatar
Jacky
Re....
i = r ? de tete ton code semble faire l'inverse du voulu
Bien c'est ben vrai aussi.....je suis distrait ;o)

Bien que cela n'explique pas la lenteur.
Si tu n'as pas trouvé entre temps....ceci alors
'-------------
Sub EffacePlanning()
Application.ScreenUpdating = False
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Range(Cells(r, 5), Cells(r, 35)).ClearContents
Next
Application.ScreenUpdating = False
End Sub
End Sub
'---------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46041342$0$25944$
Bonsoir
Dans ton code je ne comprends pas le test
i = r ? de tete ton code semble faire l'inverse du voulu
car je veux uniquement la possiblité de l'effacement des lignes 5,9,etc

"Jacky" a écrit dans le message de news:

Bonsoir,
Essaie comme cela....
'--------
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Exit Sub
Next
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Application.ScreenUpdating = False
End Sub
'-------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25
And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And
r


<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <>
77


And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <>
101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub


Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel












Avatar
cousinhub
Bonsoir,
une autre approche...
http://cjoint.com/?dxuuW8qJpe


Déprotection des cellules de la feuille de calcul
Protection des lignes non concernées par la "purge"
protection de la feuille
"Purge"
Déprotection de la feuille
Protection des cellules

PS : par défaut, toutes les cellules d'une feuille de calcul sont
protégées...
et les cellules concernées (de la colonne 5, ligne 2 à la colonne 35
ligne 121) supprimées en 0.10 seconde environ

Reviens si tu as un souci
Bonne soirée



bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne "autorisée"
puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <> 25 And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49 And r <>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r <> 77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <> 101 And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel




Avatar
cousinhub
Sorry, oublié le code (cjoint n'est valable que 21 jours!):-[

Sub effac_donnees()
[a1].Select
ActiveSheet.Unprotect
Cells.Locked = False
Range( _

"1:1,5:5,9:9,13:13,17:17,21:21,25:25,29:29,33:33,37:37,41:41,45:45,49:49,53:53,57:57,61:61,65:65,69:69,73:73,77:77,81:81,85:85,89:89,93:93,97:97,101:101,105:105,109:109,113:113,117:117,121:121"
_
).Locked = True
ActiveSheet.Protect
On Error Resume Next
For Each c In Range("a1:a121")
c.Offset(0, 4).Resize(1, 31).ClearContents
Next
ActiveSheet.Unprotect
Cells.Locked = True
[a1].Select
End Sub

Bonne soirée

Bonsoir,
une autre approche...
http://cjoint.com/?dxuuW8qJpe


Déprotection des cellules de la feuille de calcul
Protection des lignes non concernées par la "purge"
protection de la feuille
"Purge"
Déprotection de la feuille
Protection des cellules

PS : par défaut, toutes les cellules d'une feuille de calcul sont
protégées...
et les cellules concernées (de la colonne 5, ligne 2 à la colonne 35
ligne 121) supprimées en 0.10 seconde environ

Reviens si tu as un souci
Bonne soirée



bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"
puis je selectionne la portion colonne 5 a 35 et je l'efface puis je me
replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <>
25 And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49
And r <>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r
<> 77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <>
101 And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then Exit
Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes a
s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel






Avatar
Lionel
Rebonsoir,

Ton code efface tout sauf les lignes 5,9,... et c'est exactement le
contraire de ce que je recherche...
Le contenu des lignes 5, 9,...,121 doit etre effacé, pâs celui des lignes
6-7-8, 10-11-12,...122-123-124

Je vais tenter d'adapter le test pour obtenir ce que je recherche
Merci pour l'aide...
Par ailleurs qu'est ce qui peut ralentir l'execution d'une macro?
Merci a+
Lionel

"Jacky" a écrit dans le message de news:

Re....
i = r ? de tete ton code semble faire l'inverse du voulu
Bien c'est ben vrai aussi.....je suis distrait ;o)

Bien que cela n'explique pas la lenteur.
Si tu n'as pas trouvé entre temps....ceci alors
'-------------
Sub EffacePlanning()
Application.ScreenUpdating = False
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Range(Cells(r, 5), Cells(r, 35)).ClearContents
Next
Application.ScreenUpdating = False
End Sub
End Sub
'---------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46041342$0$25944$
Bonsoir
Dans ton code je ne comprends pas le test
i = r ? de tete ton code semble faire l'inverse du voulu
car je veux uniquement la possiblité de l'effacement des lignes 5,9,etc

"Jacky" a écrit dans le message de news:

Bonsoir,
Essaie comme cela....
'--------
Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
For i = 5 To 121 Step 4
If i = r Then Exit Sub
Next
Range(Cells(r, 5), Cells(r, 35)).ClearContents
Application.ScreenUpdating = False
End Sub
'-------------

--
Salutations
JJ


"Lionel" a écrit dans le message de news:
46040032$0$27373$
bonjour

Voici un code

Lorsque je lance la macro je verifie que je suis sur une ligne
"autorisée"


puis je selectionne la portion colonne 5 a 35 et je l'efface puis je
me




replace dans la cellule ou je me trouvais avant de lancer la macro...

Sub EffacePlanning()
Application.ScreenUpdating = False
c = ActiveCell.Column
r = ActiveCell.Row
If r <> 5 And r <> 9 And r <> 13 And r <> 17 And r <> 21 And r <>
25




And
r <> 29 And r <> 33 And r <> 37 And r <> 41 And r <> 45 And r <> 49
And




r
<>
53 And r <> 57 And r <> 61 And r <> 65 And r <> 69 And r <> 73 And r
<>




77
And r <> 81 And r <> 85 And r <> 89 And r <> 93 And r <> 97 And r <>
101
And
r <> 105 And r <> 109 And r <> 113 And r <> 117 And r <> 121 Then
Exit




Sub
Range(Cells(r, 5), Cells(r, 35)).Select
For Each cell In Selection
cell.Value = ""
Next
Cells(r, c).Select
Application.ScreenUpdating = False
End Sub

seulement voila lorsque je lance la macro elle dure plusieurs minutes
a




s'executer...
QQ'1 voit il ou est le probleme

Merci d'avance
Lionel
















1 2