Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu pl us
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l 'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs na tures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permett raient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guè re
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu pl us
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l 'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs na tures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permett raient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guè re
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu pl us
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l 'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs na tures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permett raient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guè re
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validati on du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui perme ttraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande gu ère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril s ur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validati on du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui perme ttraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande gu ère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril s ur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validati on du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui perme ttraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande gu ère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril s ur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponses
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Tu peux directement supprimer les select :
Sheets("Analyse des incriptions aux CCF").Rows("1:1").Find(What:=Nom,
After:¬tiveCell, LookIn:=xlFormulas, LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:úlse,
SearchFormat:úlse).Activate
ou pour plus de clarté passer par une variables :
Set MAZONE = Sheets("Analyse des incriptions aux CCF").Rows("1:1")
MAZONE.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse, SearchFormat:úlse).Activate
CortoAu de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Tu peux directement supprimer les select :
Sheets("Analyse des incriptions aux CCF").Rows("1:1").Find(What:=Nom,
After:¬tiveCell, LookIn:=xlFormulas, LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:úlse,
SearchFormat:úlse).Activate
ou pour plus de clarté passer par une variables :
Set MAZONE = Sheets("Analyse des incriptions aux CCF").Rows("1:1")
MAZONE.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse, SearchFormat:úlse).Activate
Corto
Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponses
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Bonjour,
Tu peux directement supprimer les select :
Sheets("Analyse des incriptions aux CCF").Rows("1:1").Find(What:=Nom,
After:¬tiveCell, LookIn:=xlFormulas, LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:úlse,
SearchFormat:úlse).Activate
ou pour plus de clarté passer par une variables :
Set MAZONE = Sheets("Analyse des incriptions aux CCF").Rows("1:1")
MAZONE.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse, SearchFormat:úlse).Activate
CortoAu de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > >>>>> c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:
Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
...je ne semble pas dire, j'infirme simplement cette assertion par
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cet te
ligne)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Au de là de ta remarque sur les .select c'est la manière de les élu der qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement corr ect des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois d onnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la probléma tique
chaque zone est tributaire du nombre de semaines donc du nombre de colonn es
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j' ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par valida tion du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un pe u plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'ongle t de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieur s natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (c e que
j'ai proposé avec ta suggestion) m'apporter les corrections qui per mettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande g uère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les f ils
que cdo.
Amicordialement.
lSteph
...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:
Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
...je ne semble pas dire, j'infirme simplement cette assertion par
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cet te
ligne)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Au de là de ta remarque sur les .select c'est la manière de les élu der qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement corr ect des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois d onnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la probléma tique
chaque zone est tributaire du nombre de semaines donc du nombre de colonn es
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j' ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponses
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par valida tion du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un pe u plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'ongle t de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieur s natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (c e que
j'ai proposé avec ta suggestion) m'apporter les corrections qui per mettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande g uère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les f ils
que cdo.
Amicordialement.
lSteph
...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:
Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
...je ne semble pas dire, j'infirme simplement cette assertion par
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cet te
ligne)
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Au de là de ta remarque sur les .select c'est la manière de les élu der qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement corr ect des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois d onnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la probléma tique
chaque zone est tributaire du nombre de semaines donc du nombre de colonn es
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j' ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par valida tion du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un pe u plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'ongle t de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieur s natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (c e que
j'ai proposé avec ta suggestion) m'apporter les corrections qui per mettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande g uère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les f ils
que cdo.
Amicordialement.
lSteph
Re,
1.Les .Select
Pour les supprimer il suffit de les enlever et d'utiliser l'objet
directement.
Cf réponse de Corto (Merci Corto)
2.Pour le reste...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
....je ne semble pas dire, j'infirme simplement cette assertion par
laquelle l'utilisateur aurait cru pouvoir contourner le fait que tu ne
prenne pas en charge le chgt de mois:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
si tu n'en tiens pas compte la macro plante effectivement.
Est-ce plus clair?
Amicalmement.
LSteph
(On reveille celui qui dort, pas celui qui fait semblant)
On 15 mai, 13:20, FFO wrote:Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Re,
1.Les .Select
Pour les supprimer il suffit de les enlever et d'utiliser l'objet
directement.
Cf réponse de Corto (Merci Corto)
2.Pour le reste
...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:
Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
....je ne semble pas dire, j'infirme simplement cette assertion par
laquelle l'utilisateur aurait cru pouvoir contourner le fait que tu ne
prenne pas en charge le chgt de mois:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
si tu n'en tiens pas compte la macro plante effectivement.
Est-ce plus clair?
Amicalmement.
LSteph
(On reveille celui qui dort, pas celui qui fait semblant)
On 15 mai, 13:20, FFO <F...@discussions.microsoft.com> wrote:
Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponses
Bonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO <F...@discussions.microsoft.com> wrote:
Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton temps
Bonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:
Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:
Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Re,
1.Les .Select
Pour les supprimer il suffit de les enlever et d'utiliser l'objet
directement.
Cf réponse de Corto (Merci Corto)
2.Pour le reste...je l'ai testé pour le mois d'Avril
Alors qu'il me semble bien avoir précisément indiqué:Ceci serait à vérifier (remplace Avril par Mai par exemple)
Tu sembles dire que mon code plante...
....je ne semble pas dire, j'infirme simplement cette assertion par
laquelle l'utilisateur aurait cru pouvoir contourner le fait que tu ne
prenne pas en charge le chgt de mois:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > c.Offset(-((c.Row) - 2), 0)
si tu n'en tiens pas compte la macro plante effectivement.
Est-ce plus clair?
Amicalmement.
LSteph
(On reveille celui qui dort, pas celui qui fait semblant)
On 15 mai, 13:20, FFO wrote:Au de là de ta remarque sur les .select c'est la manière de les éluder qui
m'interesse
Ils sont au nombre de 4 :
Sheets("Analyse des incriptions aux CCF").Select
Rows("1:1").Select
Selection.Find(What:=Nom, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Comment éviter les Sheets("Analyse des incriptions aux CCF").Select et
Rows("1:1").Select et faire en sorte que l'instruction qui suit puisse
fonctionner sans que son résultat soit altéré
Sheets(I).Select
For Each c In Worksheets(Nom).Range("C3", "Y19")
If c <> "" Then
Sheets("Analyse des incriptions aux CCF").Select
For Each D In Worksheets("Analyse des incriptions aux CCF").Range([B2],
[B65535].End(xlUp))
De même pour ces 2 .Select trés important pour un fonctionnement correct des
2 boucles
Je suis preneur de tes solutions
Si je n'ai pas intégré dans la Macro le traitement de tous les Mois donnant
à l'utilisateur le soin de le réaliser par le changement de la zone de
selection qui le conditionne, c'est que si tu analyses bien la problématique
chaque zone est tributaire du nombre de semaines donc du nombre de colonnes
qui peut entrainer le nombre de lignes (5 Semaines pour un seul et même Mois,
jusqu'à la colonne Z maximum du tableau il ne loge que 4 semaines)
Compte tenu de cet aléa difficilement gérable par des instructions j'ai
préféré le laisser en traitement manuel
De plus si seuls quelques mois sont à traiter une Macro par mois avec la
zone appropriée et le tour est joué
Tu sembles dire que mon code plante je l'ai testé pour le mois d'Avril avec
succés
Où ne fonctionnerait il pas pour toi ????
Voilà donc toutes ces questions
Merci de tes réponsesBonjour,
Si tu relis mon message c'est précisé:
Les .select sont presque toujours inutiles et ralentissent
l'execution
les déclarations typées de variables en revanche sont de nature à
l'optimiser.
Pour savoir ce qui plante dans ton code lorsqu'on change de mois, (je
n'ai pas eu de mal puisque c'est ce qui me posait difficulté dans ma
première proposition) je t'ai indiqué à quel endroit.
Si tu veux un code complet, vois celui de l'exemple que j'ai proposé
hier en fin d'après midi.
Plus de recherche de colonne, on la crée en fonction des feuilles
insérées au classeur lorsque la macro est déclanchée par validation du
mois dans la cellule [b1]
Tu peux peut-être y intégrer les autres améliorations que tu
envisages.
@+
Cordialement.
lSteph
On 15 mai, 10:27, FFO wrote:Salut lSteph
Et merci pour ton aide
j'ai regardais avec intêret tes remarques concernant mon code un peu plus
light
c'est grâce à 2 boucles imbriquées l'une dans l'autre que j'ai pu l'allèger
et de m'affranchir en plus de la position des matières dans l'onglet de
recopie ce qui évite de gérer les cellules de destination
Double avantage
Mais tu sembles dire que des améliorations potentielles de plusieurs natures
seraient envisageables
Peux tu sur la base de ce que j'ai proposé et ce ligne par ligne (ce que
j'ai proposé avec ta suggestion) m'apporter les corrections qui permettraient
d'améliorer la performance avec les explications en correspondances
Et ainsi grâce à toi de m'améliorer
Je demande toujours à apprendre
Merci d'avance de me consacrer un peu de ton tempsBonjour FFO,
;-)
Uniquement à toutes fins utiles et si je puis permettre:Une Macro encore plus light :
tu peux aussi tout à fait éviter les .select
(en revanche déclarer ses variables est un choix qui ne demande guère
qu'une ou deux lignes de plus )
Ceci serait à vérifier (remplace Avril par Mai par exemple)....:Elle ne nécessite que l'actualisation de
("C3", "Y19")
de la ligne :
For Each c In Worksheets(Nom).Range("C3", "Y19")
Pour choisir la bonne zone à traiter en fonction du mois (Avril sur cette
ligne)
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > > > c.Offset(-((c.Row) - 2), 0)
- - -
Sinon, pour le type de connexion je te comprends, lorsque je ne suis
pas chez moi , j'ai le même pb que toi , j'utilise l'interface de
google qui est qdmême un peu mieux pour s'y retrouver dans les fils
que cdo.
Amicordialement.
lSteph
Désolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour t oi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Désolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour t oi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Désolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour t oi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) =
c.Offset(-((c.Row) - 2), 0)
Bonjour FFO,
Oui, peut-être n'as tu pas vu, donc si tu prends le mois de MAI par
exempleDésolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour toi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....maintenant execute et regarde la date que tu récupères en regard
des noms...
donc....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
:-?
LSteph
Bonjour FFO,
Oui, peut-être n'as tu pas vu, donc si tu prends le mois de MAI par
exemple
Désolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour toi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....maintenant execute et regarde la date que tu récupères en regard
des noms...
donc
....me semblerait qu'il reste un truc à changer aussi par là:
Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
:-?
LSteph
Bonjour FFO,
Oui, peut-être n'as tu pas vu, donc si tu prends le mois de MAI par
exempleDésolé je n'ai pas tout compris (Je n'arrive pas à savoir si pour toi elle
plante ou ne plante pas)
Peut être suis je dur à la comprenette
En tout état de cause en actualisant la ligne
For Each c In Worksheets(Nom).Range("C3", "Y19")
Tu vas donc simplement remplacer par c23:Y39
....maintenant execute et regarde la date que tu récupères en regard
des noms...
donc....me semblerait qu'il reste un truc à changer aussi par là:Sheets("Analyse des incriptions aux CCF").Range(Colonne & D.Row) > > > > c.Offset(-((c.Row) - 2), 0)
:-?
LSteph