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
Re-, une autre solution, si toutes les valeurs de ta zone, toujours la même, sont à supprimer : 1/ Un petit peu de boulot : . Nommes ta zone Insertion/Nom/Définir Case "Noms dans le classeur" : base . "Fait référence à" : Sélectionnes toutes les cellules de ta zone avec ta souris, tout en maintenant la touche "Ctrl" appuyée
2/ Ta macro : Sub supp() Range("base").ClearContents End Sub
Bon courage
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
Re-,
une autre solution, si toutes les valeurs de ta zone, toujours la même,
sont à supprimer :
1/ Un petit peu de boulot :
. Nommes ta zone
Insertion/Nom/Définir
Case "Noms dans le classeur" : base
. "Fait référence à" : Sélectionnes toutes les cellules de ta zone
avec ta souris, tout en maintenant la touche "Ctrl" appuyée
2/ Ta macro :
Sub supp()
Range("base").ClearContents
End Sub
Bon courage
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
Re-, une autre solution, si toutes les valeurs de ta zone, toujours la même, sont à supprimer : 1/ Un petit peu de boulot : . Nommes ta zone Insertion/Nom/Définir Case "Noms dans le classeur" : base . "Fait référence à" : Sélectionnes toutes les cellules de ta zone avec ta souris, tout en maintenant la touche "Ctrl" appuyée
2/ Ta macro : Sub supp() Range("base").ClearContents End Sub
Bon courage
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
Jacky
Re....
Ton code efface tout sauf les lignes 5,9,... Etonnant ça....
Teste ceci: http://cjoint.com/?dxwfuB5FJO
Par ailleurs qu'est ce qui peut ralentir l'execution d'une macro? Des codes événementiels par exemple, en tout cas pas ce code ci.
Salutations JJ
"Lionel" a écrit dans le message de news: 46043b7b$0$5095$
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
Re....
Ton code efface tout sauf les lignes 5,9,...
Etonnant ça....
Teste ceci:
http://cjoint.com/?dxwfuB5FJO
Par ailleurs qu'est ce qui peut ralentir l'execution d'une macro?
Des codes événementiels par exemple, en tout cas pas ce code ci.
Salutations
JJ
"Lionel" <lionel.ma@wanadoo.fr> a écrit dans le message de news:
46043b7b$0$5095$ba4acef3@news.orange.fr...
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" <Dupond@dupont.fr> a écrit dans le message de news:
eCq9SnXbHHA.4716@TK2MSFTNGP02.phx.gbl...
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" <lionel.ma@wanadoo.fr> a écrit dans le message de news:
46041342$0$25944$ba4acef3@news.orange.fr...
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" <Dupond@dupont.fr> a écrit dans le message de news:
udaGRLXbHHA.4312@TK2MSFTNGP05.phx.gbl...
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" <lionel.ma@wanadoo.fr> a écrit dans le message de news:
46040032$0$27373$ba4acef3@news.orange.fr...
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
Ton code efface tout sauf les lignes 5,9,... Etonnant ça....
Teste ceci: http://cjoint.com/?dxwfuB5FJO
Par ailleurs qu'est ce qui peut ralentir l'execution d'une macro? Des codes événementiels par exemple, en tout cas pas ce code ci.
Salutations JJ
"Lionel" a écrit dans le message de news: 46043b7b$0$5095$
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
cousinhub
Bonsoir, pour ta dernière question, si tu as un évènement provoqué par une modification dans ta feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou Private Sub Worksheet_Change(ByVal Target As Range)
par exemple,
cela veut dire que chaque modification impose un calcul, donc, ralentissement....Le fait que tu donnes une valeur à une cellule impose l'exécution de ta Private Sub
Bonne soirée
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
Bonsoir,
pour ta dernière question, si tu as un évènement provoqué par une
modification dans ta feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ou
Private Sub Worksheet_Change(ByVal Target As Range)
par exemple,
cela veut dire que chaque modification impose un calcul, donc,
ralentissement....Le fait que tu donnes une valeur à une cellule impose
l'exécution de ta Private Sub
Bonne soirée
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" <Dupond@dupont.fr> a écrit dans le message de news:
eCq9SnXbHHA.4716@TK2MSFTNGP02.phx.gbl...
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" <lionel.ma@wanadoo.fr> a écrit dans le message de news:
46041342$0$25944$ba4acef3@news.orange.fr...
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" <Dupond@dupont.fr> a écrit dans le message de news:
udaGRLXbHHA.4312@TK2MSFTNGP05.phx.gbl...
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" <lionel.ma@wanadoo.fr> a écrit dans le message de news:
46040032$0$27373$ba4acef3@news.orange.fr...
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
Bonsoir, pour ta dernière question, si tu as un évènement provoqué par une modification dans ta feuille
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou Private Sub Worksheet_Change(ByVal Target As Range)
par exemple,
cela veut dire que chaque modification impose un calcul, donc, ralentissement....Le fait que tu donnes une valeur à une cellule impose l'exécution de ta Private Sub
Bonne soirée
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