code a verifier?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal
Le #4251351
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" 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

Jacky
Le #4251191
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" 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




Lionel
Le #4251181
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" 46040812$0$25933$
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" 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






Lionel
Le #4251161
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"
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" 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








Jacky
Le #4251151
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" 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" 46040812$0$25933$
Tu commences à 5 et ensuite ce sont tous des Impairs avec un pas de 4.
Recherches de ce côté
"Lionel" 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










Gilles MOUGNOZ
Le #4251111
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






Jacky
Le #4251091
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" 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"
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" 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












cousinhub
Le #4250991
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




cousinhub
Le #4250981
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






Lionel
Le #4321001
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"
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" 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"
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" 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
















Publicité
Poster une réponse
Anonyme