OVH Cloud OVH Cloud

liens sur onglets ajoutés

7 réponses
Avatar
vba
Hello,
Je me casses les dents sur un probl=E8me VBA.
J'ai cr=E9=E9 un programme vba dans excel pour g=E9rer des commandes

J'ai dans un onglet un formulaire, une fois compl=E9t=E9 il est copi=E9
sous un nouvel onglet qui se renomme automatiquement avec le num=E9ro de

commande (p.ex : "2210"). Dans un autre onglet ("recap") j'ai un
mini-r=E9capitulatif de la
commande. Jusque l=E0 tout est ok.

Maintenant il faudrait qu'au moment de la cr=E9ation du nouvel onglet
suite =E0 une nouvelle commande, une partie des donn=E9es de ce nouvel
onglet (ex :cellules A1 et B4) soient automatiquement repris sur une
nouvelle ligne dans l'onglet "recap" (dans les cellules C3 et C4
respectivement)

Mais attention les donn=E9es dans l'onglet "recap" ne doivent pas =EAtre
fixe. Bref si je modifie des donn=E9es dans les cellules A1 et B4 dans
mon onglet de commande "2210" il faudrait que ces donn=E9es soient
automatiquement updat=E9e sur l'onglet "recap".=20

Help, merci d'avance...

7 réponses

Avatar
Céline
cher phenix photo

voila comment jvois les choses de mon humble regard...
(apparemment ma première tentative de te répondre ayant écho ué... )
N’ayant qu’une idée assez vague du fonctionnement de t on classeur
je ne peux que te suggérer ceci :

[Maintenant il faudrait qu'au moment de la création du nouvel onglet
suite à une nouvelle commande, une partie des données de ce nouvel
onglet (ex :cellules A1 et B4) soient automatiquement repris sur une
nouvelle ligne dans l'onglet "recap" (dans les cellules C3 et C4
respectivement)]
 tu peux intercepter le moment ou l’onglet est renommà © et t’en
profites pour rajouter une ptite procédure qui lit le nouvel onglet et
complète l’onglet Recap
 mais effectivement ca se fait uniquement quand l’onglet se
renomme donc pas top pour les changements éventuels

[Mais attention les données dans l'onglet "recap" ne doivent pas à ªtre

fixe. Bref si je modifie des données dans les cellules A1 et B4 dans
mon onglet de commande "2210" il faudrait que ces données soient
automatiquement updatée sur l'onglet "recap".]
 le mieux est alors de faire l’une ou l’autre de c es solutions
 soit tu remets à jour Recap à chaque activation
Thisworkbook/sheetactivate/ if activesheet.name = « Recap  » et
la tu relis tous les onglets commande et re-remplis Recap
 soit t’interceptes tous les chamngement
Thisworkbook/sheetchange/ if range = « …. » then Recap.range
« ….. » = « ….. »

Voila
Après, il faudra ptet plus de détails sur ton fonctionnement
général pour prendre une décision et écrire plus prà ©cisemment le
code !!!
‘n’journée!!!!
Céline

a écrit :

Hello,
Je me casses les dents sur un problème VBA.
J'ai créé un programme vba dans excel pour gérer des comma ndes

J'ai dans un onglet un formulaire, une fois complété il est cop ié
sous un nouvel onglet qui se renomme automatiquement avec le numéro de

commande (p.ex : "2210"). Dans un autre onglet ("recap") j'ai un
mini-récapitulatif de la
commande. Jusque là tout est ok.

Maintenant il faudrait qu'au moment de la création du nouvel onglet
suite à une nouvelle commande, une partie des données de ce nou vel
onglet (ex :cellules A1 et B4) soient automatiquement repris sur une
nouvelle ligne dans l'onglet "recap" (dans les cellules C3 et C4
respectivement)

Mais attention les données dans l'onglet "recap" ne doivent pas à ªtre
fixe. Bref si je modifie des données dans les cellules A1 et B4 dans
mon onglet de commande "2210" il faudrait que ces données soient
automatiquement updatée sur l'onglet "recap".

Help, merci d'avance...


Avatar
Céline
cher phoenixphoto;

j'ai un peu du mal à situer tout le fonctionnement de ton pb mais j'ai
une ou deux suggestions à te soumettre

Maintenant il faudrait qu'au moment de la création du nouvel onglet
suite à une nouvelle commande, une partie des données de ce nouvel
onglet (ex :cellules A1 et B4) soient automatiquement repris sur une
nouvelle ligne dans l'onglet "recap" (dans les cellules C3 et C4
respectivement)


--> j'intercepterais le moment où la feuille est renommée

"renomme automatiquement avec le numéro de > commande (p.ex : "2210").
"
et j'en profiterais pour lancer une procédure qui complète longlet
récap

Mais attention les données dans l'onglet "recap" ne doivent pas être
fixe.


--> ce n'est pas possible tout simplement de re_remplir l'onglet recap
à chaque activation ?
je m'esplique :
avec la procédure sheetactivate, si c'est l'onglet recap, il va se
re-remplir en lisant tous les onglets des commandes.
ce qui rend inutile l'utilisation de la procédure que je t'ai
proposée précedemment.
--> ou alors,
si je modifie des données dans les cellules A1 et B4 dans
mon onglet de commande
Tu passes tout simplement par la méthode sheetchange, qui avec des

tests sur les cellules modifiées effectuent les mises à jour sur
Recap. Pareil, la procédure que je t'ai proposée en premier devient
inutile...

voila mes ptites idées, après fo ptet rentrer dans les détails de
ton classeur pour opter, ou trouver meilleure solution !!
'n'journée !
Céline



Hello,
Je me casses les dents sur un problème VBA.
J'ai créé un programme vba dans excel pour gérer des commandes

J'ai dans un onglet un formulaire, une fois complété il est copié
sous un nouvel onglet qui se renomme automatiquement avec le numéro de

commande (p.ex : "2210"). Dans un autre onglet ("recap") j'ai un
mini-récapitulatif de la
commande. Jusque là tout est ok.

Maintenant il faudrait qu'au moment de la création du nouvel onglet
suite à une nouvelle commande, une partie des données de ce nouvel
onglet (ex :cellules A1 et B4) soient automatiquement repris sur une
nouvelle ligne dans l'onglet "recap" (dans les cellules C3 et C4
respectivement)

Mais attention les données dans l'onglet "recap" ne doivent pas être
fixe. Bref si je modifie des données dans les cellules A1 et B4 dans
mon onglet de commande "2210" il faudrait que ces données soient
automatiquement updatée sur l'onglet "recap".

Help, merci d'avance...


Avatar
jones
Merci pour la réponse Céline.

J'ai pensé re-remplir l'onglet récap comme tu les suggères mais le
problème est que certains fichiers sont énormes et j'ai besoin
d'avoir les infos de la récap à jour immédiatement lors de
l'ouverture sans attendre à chaque fois la mise à jour des données.
Donc non je ne tiens pas à refaire ma récap à chaque fois, je
préfèrerais qqchose de plus direct.

Donc comme tu l'as écris c'est bien au même moment où l'onglet est
renommée que doit se créer cette nouvelle ligne dans ma récap avec
les liens sur ma commande

Je vais essayer d'être plus clair dans mes explications..
Pour te donner une idée plus précise, j'ai trouvé que dans excel la
formule que je veux utiliser donnerait qqchose du style :
'faire un lien dans l'onglet "récap" cellule A5 sur l'onglet "No 2210"
cellule A4

Range("A5").Select
ActiveCell.FormulaR1C1 = "='No 2210'!R[-1]C"

Ceci marche très bien, mais :
1) comme ma macro doit marche pour toutes nouvelles commandes il
faudrait que je puisses indiquer une variable à la place de 'No 2210'.
2) N'y a-t'il pas une manière plus simple que de formuler mon point de
chute avec !R[-1]C et surtout que veut dire ce code ? je n'aime pas
utiliser des codes que je ne connais pas.
Avatar
Céline
well, my dear jones
je n'utilise pas vraiment les fonctionnalités excel dans le VBA
et je n'ai jamais créé de liens entre cellules
par contre je comprends que relire toutes les pages à chaque
recap.activate c pas adapté
Mais j'imagine bien que le remplissage de recap est automatisé, et si
on admet que pour chaque commande, il y a sur recap une ouplusieurs
lignes attribuées uniquement à cette commande, et que les données
transférées sont toutes les mêmes (ex. toujours la cellule A1; B2,
C1),
que penses tu de ma procédure :
Private Sub Workbook_SheetChange
if not sh.name = "Recap"
if target.address = "$A$1" or ...etc...
then
tagadatsoin tsoin
kenpenses tu ?




Merci pour la réponse Céline.

J'ai pensé re-remplir l'onglet récap comme tu les suggères mais le
problème est que certains fichiers sont énormes et j'ai besoin
d'avoir les infos de la récap à jour immédiatement lors de
l'ouverture sans attendre à chaque fois la mise à jour des données.
Donc non je ne tiens pas à refaire ma récap à chaque fois, je
préfèrerais qqchose de plus direct.

Donc comme tu l'as écris c'est bien au même moment où l'onglet est
renommée que doit se créer cette nouvelle ligne dans ma récap avec
les liens sur ma commande

Je vais essayer d'être plus clair dans mes explications..
Pour te donner une idée plus précise, j'ai trouvé que dans excel la
formule que je veux utiliser donnerait qqchose du style :
'faire un lien dans l'onglet "récap" cellule A5 sur l'onglet "No 2210"
cellule A4

Range("A5").Select
ActiveCell.FormulaR1C1 = "='No 2210'!R[-1]C"

Ceci marche très bien, mais :
1) comme ma macro doit marche pour toutes nouvelles commandes il
faudrait que je puisses indiquer une variable à la place de 'No 2210'.
2) N'y a-t'il pas une manière plus simple que de formuler mon point de
chute avec !R[-1]C et surtout que veut dire ce code ? je n'aime pas
utiliser des codes que je ne connais pas.


Avatar
jones
N'étant pas une pointure en vba, j'avoues que là je n'ai pas compris
ce que tu me suggère, sorry... à quelle moment la mise à jour va
s'effectuer ?

Je vais essayer tout de même...
Avatar
Céline
bonjour jones...

as-tu réussi à t'en sortir (coupure du we oblige..) ?
Avatar
jones
Pas encore n'ayant pas eu accès à mon programme durant le weekend, je
vais essayer dans la journée et te redirai.