Il y a environ une vingtaine d'articles différents et il peut y en avoir
entre 1 et 30 en général, rarement plus et exeptionnellement jusqu'à 40.
On utilise 2 feuilles principales : MOUVEMENT et RÉSUMÉ.
--
Sur une feuille MOUVEMENT chacun des articles occupe 5 colonnes au fur et à
mesure des saisies jusqu'à un maximum théorique de 3 000 lignes, en réalité
plus proche des 1 000. En haut de chacune de ces colonnes, pour chacun de ces
articles
sont calculées des synthèses de situation.
Pour le premier, ces synthèses seront en B3:F3.
Pour le second, ces synthèses seront en G3:K3.
Pour le troisième, ces synthèses seront sur L3:P3.
etc.
--
Sur une feuille RÉSUMÉ on souhaite avoir une vue synthétique de toutes ces
synthèse. On les met donc en colonne de façon à les avoir toutes les unes
sous les autres dans la zone E16:X30 sachant que cette zone peut s'étendre si
le besoin s'en fait sentir, c'est à dire s'il y a un nouvel article qui vient
ajouter ses 5 colonnes dans la feuille MOUVEMENT.
Ainsi sur RÉSUMÉ :
En E16:E30 on aura la recopie des cellules B3, G3, L3, Q3,..
En F16:F30 on va de même recopier les cellules C3, H3, M3, R3,...
En G3:G30 on va de même recopier les cellules D3, I3, N3, S3,...
Il s'agit d'obtenir une formule qui permette d'automatiser ces recopies. Il
faut déduire en E17 qu'il s'agit de recopier le contenu de MOUVEMENT!G3 après
avoir recopié le contenu de MOUVEMENT!B3 en E16. De déduire en E18 qu'il
s'agit de recopier le contenu de MOUVEMENT!L3 après avoir recopié le contenu
de MOUVEMENT!G3 en E17. De déduire en E19 qu'il s'agit de recopier le contenu
de MOUVEMENT!Q3 après avoir recopié le contenu de MOUVEMENT!L3 en E18. etc.
pour la cellule E16 RESSE(3;LIGNE()/0.2-78) ce qui renvoie la cellule B3 utilise Indirect pour avoir son contenu =INDIRECT(ADRESSE(3;LIGNE()/0.2-78))
pour les autres colonnes il faut diminuer le chiffre 78 de 1 à chaque colonne pour la cellule F16 =INDIRECT(ADRESSE(3;LIGNE()/0.2-77))
isabelle
Bonjour à tous.
Il 'agit d'automatiser une feuille de résumé.
CONTEXTE :
Il y a environ une vingtaine d'articles différents et il peut y en avoir entre 1 et 30 en général, rarement plus et exeptionnellement jusqu'à 40.
On utilise 2 feuilles principales : MOUVEMENT et RÉSUMÉ. -- Sur une feuille MOUVEMENT chacun des articles occupe 5 colonnes au fur et à mesure des saisies jusqu'à un maximum théorique de 3 000 lignes, en réalité plus proche des 1 000. En haut de chacune de ces colonnes, pour chacun de ces articles sont calculées des synthèses de situation.
Pour le premier, ces synthèses seront en B3:F3. Pour le second, ces synthèses seront en G3:K3. Pour le troisième, ces synthèses seront sur L3:P3. etc. -- Sur une feuille RÉSUMÉ on souhaite avoir une vue synthétique de toutes ces synthèse. On les met donc en colonne de façon à les avoir toutes les unes sous les autres dans la zone E16:X30 sachant que cette zone peut s'étendre si le besoin s'en fait sentir, c'est à dire s'il y a un nouvel article qui vient ajouter ses 5 colonnes dans la feuille MOUVEMENT.
Ainsi sur RÉSUMÉ : En E16:E30 on aura la recopie des cellules B3, G3, L3, Q3,.. En F16:F30 on va de même recopier les cellules C3, H3, M3, R3,... En G3:G30 on va de même recopier les cellules D3, I3, N3, S3,...
Il s'agit d'obtenir une formule qui permette d'automatiser ces recopies. Il faut déduire en E17 qu'il s'agit de recopier le contenu de MOUVEMENT!G3 après avoir recopié le contenu de MOUVEMENT!B3 en E16. De déduire en E18 qu'il s'agit de recopier le contenu de MOUVEMENT!L3 après avoir recopié le contenu de MOUVEMENT!G3 en E17. De déduire en E19 qu'il s'agit de recopier le contenu de MOUVEMENT!Q3 après avoir recopié le contenu de MOUVEMENT!L3 en E18. etc.
Comment faire?
Merci à tous.
bonjour Indigo,
pour la cellule E16
RESSE(3;LIGNE()/0.2-78)
ce qui renvoie la cellule B3
utilise Indirect pour avoir son contenu
=INDIRECT(ADRESSE(3;LIGNE()/0.2-78))
pour les autres colonnes
il faut diminuer le chiffre 78 de 1 à chaque colonne
pour la cellule F16
=INDIRECT(ADRESSE(3;LIGNE()/0.2-77))
isabelle
Bonjour à tous.
Il 'agit d'automatiser une feuille de résumé.
CONTEXTE :
Il y a environ une vingtaine d'articles différents et il peut y en avoir
entre 1 et 30 en général, rarement plus et exeptionnellement jusqu'à 40.
On utilise 2 feuilles principales : MOUVEMENT et RÉSUMÉ.
--
Sur une feuille MOUVEMENT chacun des articles occupe 5 colonnes au fur et à
mesure des saisies jusqu'à un maximum théorique de 3 000 lignes, en réalité
plus proche des 1 000. En haut de chacune de ces colonnes, pour chacun de ces
articles
sont calculées des synthèses de situation.
Pour le premier, ces synthèses seront en B3:F3.
Pour le second, ces synthèses seront en G3:K3.
Pour le troisième, ces synthèses seront sur L3:P3.
etc.
--
Sur une feuille RÉSUMÉ on souhaite avoir une vue synthétique de toutes ces
synthèse. On les met donc en colonne de façon à les avoir toutes les unes
sous les autres dans la zone E16:X30 sachant que cette zone peut s'étendre si
le besoin s'en fait sentir, c'est à dire s'il y a un nouvel article qui vient
ajouter ses 5 colonnes dans la feuille MOUVEMENT.
Ainsi sur RÉSUMÉ :
En E16:E30 on aura la recopie des cellules B3, G3, L3, Q3,..
En F16:F30 on va de même recopier les cellules C3, H3, M3, R3,...
En G3:G30 on va de même recopier les cellules D3, I3, N3, S3,...
Il s'agit d'obtenir une formule qui permette d'automatiser ces recopies. Il
faut déduire en E17 qu'il s'agit de recopier le contenu de MOUVEMENT!G3 après
avoir recopié le contenu de MOUVEMENT!B3 en E16. De déduire en E18 qu'il
s'agit de recopier le contenu de MOUVEMENT!L3 après avoir recopié le contenu
de MOUVEMENT!G3 en E17. De déduire en E19 qu'il s'agit de recopier le contenu
de MOUVEMENT!Q3 après avoir recopié le contenu de MOUVEMENT!L3 en E18. etc.
pour la cellule E16 RESSE(3;LIGNE()/0.2-78) ce qui renvoie la cellule B3 utilise Indirect pour avoir son contenu =INDIRECT(ADRESSE(3;LIGNE()/0.2-78))
pour les autres colonnes il faut diminuer le chiffre 78 de 1 à chaque colonne pour la cellule F16 =INDIRECT(ADRESSE(3;LIGNE()/0.2-77))
isabelle
Bonjour à tous.
Il 'agit d'automatiser une feuille de résumé.
CONTEXTE :
Il y a environ une vingtaine d'articles différents et il peut y en avoir entre 1 et 30 en général, rarement plus et exeptionnellement jusqu'à 40.
On utilise 2 feuilles principales : MOUVEMENT et RÉSUMÉ. -- Sur une feuille MOUVEMENT chacun des articles occupe 5 colonnes au fur et à mesure des saisies jusqu'à un maximum théorique de 3 000 lignes, en réalité plus proche des 1 000. En haut de chacune de ces colonnes, pour chacun de ces articles sont calculées des synthèses de situation.
Pour le premier, ces synthèses seront en B3:F3. Pour le second, ces synthèses seront en G3:K3. Pour le troisième, ces synthèses seront sur L3:P3. etc. -- Sur une feuille RÉSUMÉ on souhaite avoir une vue synthétique de toutes ces synthèse. On les met donc en colonne de façon à les avoir toutes les unes sous les autres dans la zone E16:X30 sachant que cette zone peut s'étendre si le besoin s'en fait sentir, c'est à dire s'il y a un nouvel article qui vient ajouter ses 5 colonnes dans la feuille MOUVEMENT.
Ainsi sur RÉSUMÉ : En E16:E30 on aura la recopie des cellules B3, G3, L3, Q3,.. En F16:F30 on va de même recopier les cellules C3, H3, M3, R3,... En G3:G30 on va de même recopier les cellules D3, I3, N3, S3,...
Il s'agit d'obtenir une formule qui permette d'automatiser ces recopies. Il faut déduire en E17 qu'il s'agit de recopier le contenu de MOUVEMENT!G3 après avoir recopié le contenu de MOUVEMENT!B3 en E16. De déduire en E18 qu'il s'agit de recopier le contenu de MOUVEMENT!L3 après avoir recopié le contenu de MOUVEMENT!G3 en E17. De déduire en E19 qu'il s'agit de recopier le contenu de MOUVEMENT!Q3 après avoir recopié le contenu de MOUVEMENT!L3 en E18. etc.
Comment faire?
Merci à tous.
Indigo
Merci beaucoup Isabelle.
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la feuille MOUVEMENT la formule est donc : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division /0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3 colonnes)
Merci beaucoup Isabelle.
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la
feuille MOUVEMENT la formule est donc :
=INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute
les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division
/0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3
colonnes)
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la feuille MOUVEMENT la formule est donc : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division /0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3 colonnes)
Indigo
Problème inverse.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que soit recopié automatiquement de la même façon les noms 1 par 1 dans la feuille MOUVEMENTS 1° nom en B1 2° nom en G1 3° nom en L1 etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la formule = Résumé!E17.
Problème inverse.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que
soit recopié automatiquement de la même façon les noms 1 par 1 dans la
feuille MOUVEMENTS
1° nom en B1
2° nom en G1
3° nom en L1
etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors
que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner
sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la
formule = Résumé!E17.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que soit recopié automatiquement de la même façon les noms 1 par 1 dans la feuille MOUVEMENTS 1° nom en B1 2° nom en G1 3° nom en L1 etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la formule = Résumé!E17.
Indigo
Problème inverse.
C'est : =INDIRECT("Résumé!"&ADRESSE(COLONNE()/5+17;1))
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans perturber pour autant les calculs.
Comment faire ?
Problème inverse.
C'est :
=INDIRECT("Résumé!"&ADRESSE(COLONNE()/5+17;1))
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par
un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans
perturber pour autant les calculs.
C'est : =INDIRECT("Résumé!"&ADRESSE(COLONNE()/5+17;1))
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans perturber pour autant les calculs.
Comment faire ?
isabelle
bonjour Indigo,
Merci beaucoup Isabelle.
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la feuille MOUVEMENT la formule est donc : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division /0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3 colonnes)
oui c'est bien ça, LIGNE()*5 pour le pas de cinq et -82 (surplus à enlever) qui sera variable selon à quel colonne on commence.
isabelle
bonjour Indigo,
Merci beaucoup Isabelle.
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la
feuille MOUVEMENT la formule est donc :
=INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute
les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division
/0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3
colonnes)
oui c'est bien ça, LIGNE()*5 pour le pas de cinq
et -82 (surplus à enlever) qui sera variable selon à quel colonne on commence.
Pour être complet si on veut par exemple accéder à la cellule $C$2 de la feuille MOUVEMENT la formule est donc : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) avec 85*5 si on débute les calculs en E17.
(Je préfère utiliser le produit x5 (pour 5 colonnes) plutôt que la division /0.2 qui ne fonctionnerait pas avec 0.3 par exemple pas si on n'avait que 3 colonnes)
oui c'est bien ça, LIGNE()*5 pour le pas de cinq et -82 (surplus à enlever) qui sera variable selon à quel colonne on commence.
isabelle
isabelle
c'est le même principe,
=INDIRECT(ADRESSE(COLONNE()/5+17;1))
isabelle
Problème inverse.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que soit recopié automatiquement de la même façon les noms 1 par 1 dans la feuille MOUVEMENTS 1° nom en B1 2° nom en G1 3° nom en L1 etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la formule = Résumé!E17.
c'est le même principe,
=INDIRECT(ADRESSE(COLONNE()/5+17;1))
isabelle
Problème inverse.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que
soit recopié automatiquement de la même façon les noms 1 par 1 dans la
feuille MOUVEMENTS
1° nom en B1
2° nom en G1
3° nom en L1
etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors
que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner
sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la
formule = Résumé!E17.
Sur la feuille RÉSUMÉ j'ai une suite de nom de A17 à A65. Je voudrais que soit recopié automatiquement de la même façon les noms 1 par 1 dans la feuille MOUVEMENTS 1° nom en B1 2° nom en G1 3° nom en L1 etc.
De façon à pouvoir faire un coupé-collé d'une zone de 5 colonnes dès lors que j'ai un nouveau produit à ajouter. Je souhaite ne pas avoir à retourner sur chacune des cellules pour devoire écrire par exemple sur la cellule B1 la formule = Résumé!E17.
isabelle
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans perturber pour autant les calculs.
Comment faire ?
si tu change le nom de feuille cela se répercutera dans la formulle automatiquement. à moin que la formulle ne soit pas déjà écrit à ce moment la.
isabelle
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par
un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans
perturber pour autant les calculs.
Comment faire ?
si tu change le nom de feuille cela se répercutera dans la formulle automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Il ne me reste plus qu'à remplacer les chaînes "Résumé!" et "Mouvement!" par un nom relatif de façon à ce qu'on puisse changer le nom de ces feuilles sans perturber pour autant les calculs.
Comment faire ?
si tu change le nom de feuille cela se répercutera dans la formulle automatiquement. à moin que la formulle ne soit pas déjà écrit à ce moment la.
isabelle
Indigo
si tu change le nom de feuille cela se répercutera dans la formulle automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre du nom de la feuille si elle venait à changer de nom ?
si tu change le nom de feuille cela se répercutera dans la formulle
automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule :
=INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un
texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre
du nom de la feuille si elle venait à changer de nom ?
si tu change le nom de feuille cela se répercutera dans la formulle automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre du nom de la feuille si elle venait à changer de nom ?
isabelle
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer) Application.Volatile For Each f In ActiveWorkbook.Sheets If f.CodeName = "Feuil" & numéro Then feuille = f.Name Next End Function
isabelle
si tu change le nom de feuille cela se répercutera dans la formulle
automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre du nom de la feuille si elle venait à changer de nom ?
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer)
Application.Volatile
For Each f In ActiveWorkbook.Sheets
If f.CodeName = "Feuil" & numéro Then feuille = f.Name
Next
End Function
isabelle
si tu change le nom de feuille cela se répercutera dans la formulle
automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule :
=INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un
texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre
du nom de la feuille si elle venait à changer de nom ?
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer) Application.Volatile For Each f In ActiveWorkbook.Sheets If f.CodeName = "Feuil" & numéro Then feuille = f.Name Next End Function
isabelle
si tu change le nom de feuille cela se répercutera dans la formulle
automatiquement.
à moin que la formulle ne soit pas déjà écrit à ce moment la.
Pas avec ce type de formule : =INDIRECT("Mouvement!"&RESSE(2;LIGNE()*5-82)) puisqu'il s'agit ici d'un texte brut. Par quoi remplacer la chaîne "Mouvement!" pour ne plus dépendre du nom de la feuille si elle venait à changer de nom ?
Indigo
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer) Application.Volatile For Each f In ActiveWorkbook.Sheets If f.CodeName = "Feuil" & numéro Then feuille = f.Name Next End Function
Merci à toi Isabelle. Une fois de plus.
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer)
Application.Volatile
For Each f In ActiveWorkbook.Sheets
If f.CodeName = "Feuil" & numéro Then feuille = f.Name
Next
End Function
je ne vois pas d'autre solution qu'une fonction perso utilisant le numéro codename,
Function feuille(numéro As Integer) Application.Volatile For Each f In ActiveWorkbook.Sheets If f.CodeName = "Feuil" & numéro Then feuille = f.Name Next End Function