Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans 3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry Euzenot
Je veux détecter aussi la perte de focus d'une cellule (la même que dans l'exemple précédent)
Je vais donc utiliser la fonction :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 And Target.Row = 3 Then Feuil1.TextBox1.Value = "8:0" Feuil1.TextBox2.Activate End If End Sub
Mai en fait Worksheet_SelectionChange(ByVal Target As Range) me renvoi les coordonnées de la nouvelle cellule sélectionnée... je suis donc obligé de faire :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 1 And Target.Row <> 3 Then Feuil1.TextBox1.Value = "8:0" Feuil1.TextBox2.Activate End If End Sub
Ceci non plus ne me parait pas le plus simple... Comment puis-je récupérer l'adresse de la cellule que je viens de quitter ? Je précise que je souhaite pouvoir quitter la cellule active soit par TAB, soit par Entrée, soit par un clic sur une autre cellule...
Je veux détecter aussi la perte de focus d'une cellule (la même que dans
l'exemple précédent)
Je vais donc utiliser la fonction :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Feuil1.TextBox1.Value = "8:0"
Feuil1.TextBox2.Activate
End If
End Sub
Mai en fait Worksheet_SelectionChange(ByVal Target As Range) me renvoi les
coordonnées de la nouvelle cellule sélectionnée... je suis donc obligé de
faire :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 And Target.Row <> 3 Then
Feuil1.TextBox1.Value = "8:0"
Feuil1.TextBox2.Activate
End If
End Sub
Ceci non plus ne me parait pas le plus simple... Comment puis-je récupérer
l'adresse de la cellule que je viens de quitter ?
Je précise que je souhaite pouvoir quitter la cellule active soit par TAB,
soit par Entrée, soit par un clic sur une autre cellule...
Je veux détecter aussi la perte de focus d'une cellule (la même que dans l'exemple précédent)
Je vais donc utiliser la fonction :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 And Target.Row = 3 Then Feuil1.TextBox1.Value = "8:0" Feuil1.TextBox2.Activate End If End Sub
Mai en fait Worksheet_SelectionChange(ByVal Target As Range) me renvoi les coordonnées de la nouvelle cellule sélectionnée... je suis donc obligé de faire :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 1 And Target.Row <> 3 Then Feuil1.TextBox1.Value = "8:0" Feuil1.TextBox2.Activate End If End Sub
Ceci non plus ne me parait pas le plus simple... Comment puis-je récupérer l'adresse de la cellule que je viens de quitter ? Je précise que je souhaite pouvoir quitter la cellule active soit par TAB, soit par Entrée, soit par un clic sur une autre cellule...
Gadget
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans 3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Pourquoi n'écris-tu pas simplement :
If Target = Range("A3") then
.....
etc. ?
Ou encore :
Select Case Target.Address
Case "$A$3"
....
etc. ?
--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de
news:uXJZrGdLEHA.1264@TK2MSFTNGP12.phx.gbl...
Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur
:o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans 3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Thierry Euzenot
Tout simplement parce que l'aide sur l'attribut "target" n'existe pas et que je ne comprenais pas bien comment ça fonctionne... :o(
Merci pour tes conseils :o)
"Gadget" a écrit dans le message de news:4090de15$0$5840$
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Tout simplement parce que l'aide sur l'attribut "target" n'existe pas et que
je ne comprenais pas bien comment ça fonctionne... :o(
Merci pour tes conseils :o)
"Gadget" <Gadgetokarim@noos.fr> a écrit dans le message de
news:4090de15$0$5840$79c14f64@nan-newsreader-02.noos.net...
Pourquoi n'écris-tu pas simplement :
If Target = Range("A3") then
.....
etc. ?
Ou encore :
Select Case Target.Address
Case "$A$3"
....
etc. ?
--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de
news:uXJZrGdLEHA.1264@TK2MSFTNGP12.phx.gbl...
Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait
deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements
dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur
:o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Tout simplement parce que l'aide sur l'attribut "target" n'existe pas et que je ne comprenais pas bien comment ça fonctionne... :o(
Merci pour tes conseils :o)
"Gadget" a écrit dans le message de news:4090de15$0$5840$
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Thierry Euzenot
Hum ceci ne marche pas (enfin peut générer des erreurs dans certains cas) : If Target = Range("A3") then
il faut mettre : If Target.Adress = Range("A3") then
:o)
"Gadget" a écrit dans le message de news:4090de15$0$5840$
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Hum ceci ne marche pas (enfin peut générer des erreurs dans certains cas) :
If Target = Range("A3") then
il faut mettre :
If Target.Adress = Range("A3") then
:o)
"Gadget" <Gadgetokarim@noos.fr> a écrit dans le message de
news:4090de15$0$5840$79c14f64@nan-newsreader-02.noos.net...
Pourquoi n'écris-tu pas simplement :
If Target = Range("A3") then
.....
etc. ?
Ou encore :
Select Case Target.Address
Case "$A$3"
....
etc. ?
--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de
news:uXJZrGdLEHA.1264@TK2MSFTNGP12.phx.gbl...
Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait
deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements
dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur
:o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Hum ceci ne marche pas (enfin peut générer des erreurs dans certains cas) : If Target = Range("A3") then
il faut mettre : If Target.Adress = Range("A3") then
:o)
"Gadget" a écrit dans le message de news:4090de15$0$5840$
Pourquoi n'écris-tu pas simplement : If Target = Range("A3") then ..... etc. ? Ou encore :
Select Case Target.Address Case "$A$3" ....
etc. ?
-- -- Carpe Diem Quam Minimum Credula Postera Bicose Sic Transit Gloria Mundi, et Arx Tarpeia Capitoli Proxima !! "Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
LeSteph
Bonsoir, Dans le worksheet_on change des 12 feuilles d'un classeur feuilles janvier à décembre avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur et 128Mo de Ram. Ces 12 feuilles appellent une sub située dans le module principal du workbook qui dans une boucle For examine 997 cellules pour chaque feuille et procède, le cas échéant autant de fois (5 colonnes plus loin) à la mise à jour les cellules vérouille ou dévérouille les listes de validation et la protection des cellules concernées. Au lieu d'une seconde il en faut deux à trois pour tout le refresh en mettant le updating de screen à false pendant l'exécution, en terme (pas les eaux) de ressources voilà tout. sinon pour ton code essaie les with .....end with et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3) si c'est la légèreté que tu recherches. Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans 3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Bonsoir,
Dans le worksheet_on change
des 12 feuilles d'un classeur feuilles janvier à décembre
avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur
et 128Mo de Ram.
Ces 12 feuilles appellent une sub située dans le module principal du
workbook
qui dans une boucle For examine 997 cellules pour chaque feuille et procède,
le cas échéant
autant de fois (5 colonnes plus loin) à la mise à jour les cellules
vérouille ou dévérouille les listes de validation et la protection des
cellules concernées.
Au lieu d'une seconde il en faut deux à trois pour tout le refresh
en mettant le updating de screen à false pendant l'exécution, en terme (pas
les eaux) de ressources
voilà tout.
sinon pour ton code essaie les with .....end with
et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3)
si c'est la légèreté que tu recherches.
Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de
news:uXJZrGdLEHA.1264@TK2MSFTNGP12.phx.gbl...
Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur
:o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Bonsoir, Dans le worksheet_on change des 12 feuilles d'un classeur feuilles janvier à décembre avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur et 128Mo de Ram. Ces 12 feuilles appellent une sub située dans le module principal du workbook qui dans une boucle For examine 997 cellules pour chaque feuille et procède, le cas échéant autant de fois (5 colonnes plus loin) à la mise à jour les cellules vérouille ou dévérouille les listes de validation et la protection des cellules concernées. Au lieu d'une seconde il en faut deux à trois pour tout le refresh en mettant le updating de screen à false pendant l'exécution, en terme (pas les eaux) de ressources voilà tout. sinon pour ton code essaie les with .....end with et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3) si c'est la légèreté que tu recherches. Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans 3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Thierry Euzenot
Merci :-)
Heu pour le cells(1,3) je suis d'accord mais comment je fais pour faire un test sur un Target.Cells ??? Avec un Target.Range, je sais faire mais pas avec le Cells...
If Target.Range = "$A$3" Then ==> Ca c'est facile à faire :o)
Mais : If Target.Cells = ??? je mets quoi ? = "1,3" ?
"LeSteph" a écrit dans le message de news:40914e8a$0$19473$
Bonsoir, Dans le worksheet_on change des 12 feuilles d'un classeur feuilles janvier à décembre avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur et 128Mo de Ram. Ces 12 feuilles appellent une sub située dans le module principal du workbook qui dans une boucle For examine 997 cellules pour chaque feuille et procède,
le cas échéant autant de fois (5 colonnes plus loin) à la mise à jour les cellules vérouille ou dévérouille les listes de validation et la protection des cellules concernées. Au lieu d'une seconde il en faut deux à trois pour tout le refresh en mettant le updating de screen à false pendant l'exécution, en terme (pas
les eaux) de ressources voilà tout. sinon pour ton code essaie les with .....end with et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3) si c'est la légèreté que tu recherches. Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If
End Sub
Thierry éternel apprenti VBA
Merci :-)
Heu pour le cells(1,3) je suis d'accord mais comment je fais pour faire un
test sur un Target.Cells ???
Avec un Target.Range, je sais faire mais pas avec le Cells...
If Target.Range = "$A$3" Then ==> Ca c'est facile à faire :o)
Mais :
If Target.Cells = ???
je mets quoi ? = "1,3" ?
"LeSteph" <cocosteph@free.fr> a écrit dans le message de
news:40914e8a$0$19473$636a15ce@news.free.fr...
Bonsoir,
Dans le worksheet_on change
des 12 feuilles d'un classeur feuilles janvier à décembre
avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur
et 128Mo de Ram.
Ces 12 feuilles appellent une sub située dans le module principal du
workbook
qui dans une boucle For examine 997 cellules pour chaque feuille et
procède,
le cas échéant
autant de fois (5 colonnes plus loin) à la mise à jour les cellules
vérouille ou dévérouille les listes de validation et la protection des
cellules concernées.
Au lieu d'une seconde il en faut deux à trois pour tout le refresh
en mettant le updating de screen à false pendant l'exécution, en terme
(pas
les eaux) de ressources
voilà tout.
sinon pour ton code essaie les with .....end with
et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3)
si c'est la légèreté que tu recherches.
Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" <te.st2e@free.fr> a écrit dans le message de
news:uXJZrGdLEHA.1264@TK2MSFTNGP12.phx.gbl...
Quelles sont les répercussions en therme de performance d'une fonction
Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait
deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements
dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur
:o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then
Call sub1
ElseIf Target.Column = 2 And Target.Row = 5 Then
Call sub2
ElseIf Target.Column = 4 And Target.Row = 12 Then
Call sub3
End If
Heu pour le cells(1,3) je suis d'accord mais comment je fais pour faire un test sur un Target.Cells ??? Avec un Target.Range, je sais faire mais pas avec le Cells...
If Target.Range = "$A$3" Then ==> Ca c'est facile à faire :o)
Mais : If Target.Cells = ??? je mets quoi ? = "1,3" ?
"LeSteph" a écrit dans le message de news:40914e8a$0$19473$
Bonsoir, Dans le worksheet_on change des 12 feuilles d'un classeur feuilles janvier à décembre avec un modeste poste dépassant à peine le Ghz en fréquenc de processeur et 128Mo de Ram. Ces 12 feuilles appellent une sub située dans le module principal du workbook qui dans une boucle For examine 997 cellules pour chaque feuille et procède,
le cas échéant autant de fois (5 colonnes plus loin) à la mise à jour les cellules vérouille ou dévérouille les listes de validation et la protection des cellules concernées. Au lieu d'une seconde il en faut deux à trois pour tout le refresh en mettant le updating de screen à false pendant l'exécution, en terme (pas
les eaux) de ressources voilà tout. sinon pour ton code essaie les with .....end with et aussi .cells(1,3) quand tu peux te passer de .rows(1) et .columns(3) si c'est la légèreté que tu recherches. Sinon, franchement c'est hyper léger ton code.
LeSteph
"Thierry Euzenot" a écrit dans le message de news:
Quelles sont les répercussions en therme de performance d'une fonction Private Sub Worksheet_Change(ByVal Target As Range) qui surveillerait deux
où trois cellules dans une feuille de calcul ?
Est-ce que ça ralentit le système ? (ce qui paraîtrait logique)
Si oui, comment réduire efficacement la surveillance des changements dans
3
cellules A3, B5, D12 ?
Pour l'instant j'ai fait ça : Si vous avez plus efficace je suis preneur :o)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 3 Then Call sub1 ElseIf Target.Column = 2 And Target.Row = 5 Then Call sub2 ElseIf Target.Column = 4 And Target.Row = 12 Then Call sub3 End If