Alternative à une boucle? bonnes pratiques pour avoir des macros rapides?
5 réponses
Uncas Cooper
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui
utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000
dans mon cas) et en une seule fois remplir toutes les cellules vide par
la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le
meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour
les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes
pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
eviter des boucles? Y a-t-il des fonctions reputees lentes?
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
Uncas Cooper
Excusez moi fausse manip...
Bien evidemment, merci a tous pour votre aide!
Uncas
Uncas Cooper escribió:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
(Dans ma boucle j'utilise la methode find.)
Excusez moi fausse manip...
Bien evidemment, merci a tous pour votre aide!
Uncas
Uncas Cooper escribió:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui
utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000
dans mon cas) et en une seule fois remplir toutes les cellules vide par
la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le
meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour
les cellules de la colonne B, min(C1) pour les cellules de la colonne C,
etc
En regardant mon probleme de façon plus general quelles sont les bonnes
pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
eviter des boucles? Y a-t-il des fonctions reputees lentes?
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pou r les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper <uncascoo...@gmail.com> wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui
utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000
dans mon cas) et en une seule fois remplir toutes les cellules vide par
la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le
meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pou r
les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes
pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pou r les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper <uncascoo...@gmail.com> wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui
utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000
dans mon cas) et en une seule fois remplir toutes les cellules vide par
la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le
meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour
les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes
pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
eviter des boucles? Y a-t-il des fonctions reputees lentes?
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
(Dans ma boucle j'utilise la methode find.)
Uncas Cooper
Bonsoir JB,
Merci pour ton aide. J'ai essayé d'adapter la ligne de code que tu donnes mais sans succes pour l'instant:
'ne fonctionne pas [F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal = "=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il faudrait en plus que cette formule soit "flottante", j'entends par là que si je l'ecrivais dans excel je n'utiliserais pas les "$": ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
(Dans ma boucle j'utilise la methode find.)
Bonsoir JB,
Merci pour ton aide.
J'ai essayé d'adapter la ligne de code que tu donnes mais sans succes
pour l'instant:
'ne fonctionne pas
[F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal =
"=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il
faudrait en plus que cette formule soit "flottante", j'entends par là
que si je l'ecrivais dans excel je n'utiliserais pas les "$":
ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper <uncascoo...@gmail.com> wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui
utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000
dans mon cas) et en une seule fois remplir toutes les cellules vide par
la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le
meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour
les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes
pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
eviter des boucles? Y a-t-il des fonctions reputees lentes?
'ne fonctionne pas [F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal = "=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il faudrait en plus que cette formule soit "flottante", j'entends par là que si je l'ecrivais dans excel je n'utiliserais pas les "$": ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
Il faut passer en calcul manuel pendant l'écriture des formules.
JB
On 27 juin, 15:56, Uncas Cooper wrote:
Bonjour,
Je cherche à rendre plus rapide une macro d'une lenteur effarante qui utilise actuellement une boucle.
En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si la cellule est vide (test if) elle ecrit une formule dedans.
Je me demandais s'il était possible de definir une selection (B2:Z2000 dans mon cas) et en une seule fois remplir toutes les cellules vide par la formule?
1) est ce possible dans un cas simple? par exemple ecrire toujours le meme texte. =min($A$1) par exemple
2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
En regardant mon probleme de façon plus general quelles sont les bonnes pratiques pour avoir des macros plus rapides? j'imagine qu'il faut eviter des boucles? Y a-t-il des fonctions reputees lentes?
(Dans ma boucle j'utilise la methode find.)
JB
Bonjour,
La formule est en Anglais: utiliser Formula au lieu de FormulaLocal
JB
On 27 juin, 21:51, Uncas Cooper wrote:
Bonsoir JB,
Merci pour ton aide. J'ai essayé d'adapter la ligne de code que tu donnes mais sans succes pour l'instant:
'ne fonctionne pas [F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal = "=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il faudrait en plus que cette formule soit "flottante", j'entends par là que si je l'ecrivais dans excel je n'utiliserais pas les "$": ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
> Il faut passer en calcul manuel pendant l'écriture des formules.
> JB
> On 27 juin, 15:56, Uncas Cooper wrote: >> Bonjour,
>> Je cherche à rendre plus rapide une macro d'une lenteur effarante qu i >> utilise actuellement une boucle.
>> En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si >> la cellule est vide (test if) elle ecrit une formule dedans.
>> Je me demandais s'il était possible de definir une selection (B2:Z20 00 >> dans mon cas) et en une seule fois remplir toutes les cellules vide pa r >> la formule?
>> 1) est ce possible dans un cas simple? par exemple ecrire toujours le >> meme texte. =min($A$1) par exemple
>> 2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour >> les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
>> En regardant mon probleme de façon plus general quelles sont les bon nes >> pratiques pour avoir des macros plus rapides? j'imagine qu'il faut >> eviter des boucles? Y a-t-il des fonctions reputees lentes?
>> (Dans ma boucle j'utilise la methode find.)- Masquer le texte des mess ages précédents -
- Afficher le texte des messages précédents -
Bonjour,
La formule est en Anglais: utiliser Formula au lieu de FormulaLocal
JB
On 27 juin, 21:51, Uncas Cooper <uncascoo...@gmail.com> wrote:
Bonsoir JB,
Merci pour ton aide.
J'ai essayé d'adapter la ligne de code que tu donnes mais sans succes
pour l'instant:
'ne fonctionne pas
[F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal =
"=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il
faudrait en plus que cette formule soit "flottante", j'entends par là
que si je l'ecrivais dans excel je n'utiliserais pas les "$":
ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
> Il faut passer en calcul manuel pendant l'écriture des formules.
> JB
> On 27 juin, 15:56, Uncas Cooper <uncascoo...@gmail.com> wrote:
>> Bonjour,
>> Je cherche à rendre plus rapide une macro d'une lenteur effarante qu i
>> utilise actuellement une boucle.
>> En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si
>> la cellule est vide (test if) elle ecrit une formule dedans.
>> Je me demandais s'il était possible de definir une selection (B2:Z20 00
>> dans mon cas) et en une seule fois remplir toutes les cellules vide pa r
>> la formule?
>> 1) est ce possible dans un cas simple? par exemple ecrire toujours le
>> meme texte. =min($A$1) par exemple
>> 2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour
>> les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
>> En regardant mon probleme de façon plus general quelles sont les bon nes
>> pratiques pour avoir des macros plus rapides? j'imagine qu'il faut
>> eviter des boucles? Y a-t-il des fonctions reputees lentes?
>> (Dans ma boucle j'utilise la methode find.)- Masquer le texte des mess ages précédents -
'ne fonctionne pas [F:F].SpecialCells(xlCellTypeBlanks).FormulaLocal = "=+VLOOKUP(RC1,Import_Fortuneo!C[-1]:C[2],4,FALSE)"
J'essaie d'utiliser la fonction VLOOKUP, sachant que idealement il faudrait en plus que cette formule soit "flottante", j'entends par là que si je l'ecrivais dans excel je n'utiliserais pas les "$": ex: recherchev(A1; tableau;3;faux) et non recherchv($A$1;tableau;3;faux)
> Il faut passer en calcul manuel pendant l'écriture des formules.
> JB
> On 27 juin, 15:56, Uncas Cooper wrote: >> Bonjour,
>> Je cherche à rendre plus rapide une macro d'une lenteur effarante qu i >> utilise actuellement une boucle.
>> En gros ma boucle va de cellule en cellule sur la plage "B2:Z2000" et si >> la cellule est vide (test if) elle ecrit une formule dedans.
>> Je me demandais s'il était possible de definir une selection (B2:Z20 00 >> dans mon cas) et en une seule fois remplir toutes les cellules vide pa r >> la formule?
>> 1) est ce possible dans un cas simple? par exemple ecrire toujours le >> meme texte. =min($A$1) par exemple
>> 2) est ce possible dans un cas plus complexe? par exemple = min(B1) pour >> les cellules de la colonne B, min(C1) pour les cellules de la colonne C, etc
>> En regardant mon probleme de façon plus general quelles sont les bon nes >> pratiques pour avoir des macros plus rapides? j'imagine qu'il faut >> eviter des boucles? Y a-t-il des fonctions reputees lentes?
>> (Dans ma boucle j'utilise la methode find.)- Masquer le texte des mess ages précédents -