Faire référence à une feuille précédente

  • Initiateur de la discussion Initiateur de la discussion Sylvie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sylvie

XLDnaute Accro
Bonjour le Forum,

j'ai placé dans la feuille 2 d'un classeur des formules faisant référence pour le moment à la feuille 1 du classeur appelée, pour le moment, Feuil1. Cette feuille 1 est pour le moment vierge.
Or je souhaiterais remplacer ces références Feuil1! par des références signifiant 'Feuille précédente' car la feuille 1 (je veux dire la feuille placée avant la feuille2) ne s'appelera pas Feuil1 mais elle s'appelera tantot Dupont.xls, tantot Martin.xls, etc .... (ce sont bien les feuilles qui se terminent par .xls).

Mais comme je ne connais pas 'à priori' le nom de la feuille précédente, je n'ai pas trouvé comment libeller mes formules en feuille2. (Pour la petite histoire la fameuse feuille précédent la feuille 2 sera insérée en provenance d'un autre classeur grace à un USF élaboré par Thierry dans un fil du 11/6)

Merci à vous tous

Sylvie
 
Bonjour Bertrand, le fil le forum

j'avais vu ta proposition Bertrand mais je n'ai bien compris ce qu'elle pourrait m'apporter de plus.
Je t'explique à l'aide du fichier que j'ai joint plus haut :
- la situation initiale est la suivante :
Mon classeur est composé des seules feuilles feuil2 et feui1. Il aura toujours la même ..figure 😉
J'importe grace à la manip de Thierry une feuille en provenance d'un autre classeur (je vais refaire ce mois ci 76 fois la manip car 76 salariés et donc 76 feuilles): le but etait que chaque feuille importée se substitue à la feuille 1 (ces feuilles ont toutes la meme structure) et que mes formules en feuille2 puissent fonctionner. Mais là çà coince because la feuil1 ne s'appelle plus feuil1
etc etc ..

Tu me suis ?

A+
Sylvie
 
Salut Sylvie, thierry, Mutzic, le forum

En repassant vous voir, J'ai la même réaction que Bertrand, J'ai l'impression que vous vous compliquez la vie. Si vraiment Sylvie, ton fichier ne contient que 2 ou 3 feuilles et qu'il appelle d'autres feuilles provenant d'autres fichiers qui en plus, se placent toujours à la place de la feuille1, 3 lignes en macros pour actualiser les données suffisent après chaque changement de la feuil1.

Sub actualiser()
Dim nomfeuille1 As String
nomfeuille1 = Worksheets(1).Name
Range('A1').Cells = nomfeuille1
End Sub

Quelque soit le nom de la feuil1, la feuil2 y fera toujours référence.

Dans mon exemple (voir plus haut), je place le nouveau nom de la feuil1 dans la cellule A1 de la feuil2, mais on peut faire une macro qui remplacera dans toutes les cellules de la feuil2, l'ancien nom par le nouveau (un 'remplacer' suffit). J'ai déjà fait pour le boulot le même genre de dossier. Par contre, pour appeler tes fichiers, l'USF me parait une très bonne option.

Mais comme je vous aime bien, je ne peux pas m'empêcher de vous faire un petit coucou de temps en temps et de mettre mon grain de sel...(lol).

Perso, j'aurai mis tout dans le même classeur ... transformé les fichiers en base de données avec une feuille modèle qui récupérerait les données de chacun en un seul clic et tout le reste des formules suivrait tranquille...Holà! minuit...j'vais me couché...A+
 
Bonjour Gibson, Thierry, Mutzik le Forum,

Gibson, tu m'écris : ' on peut faire une macro qui remplacera dans toutes les cellules de la feuil2, l'ancien nom par le nouveau (un \\'remplacer\\' suffit). Mais je suis preneuse bien sur !
Et si tu peux même inclure que le nouveau nom c'est le nom de la feuille placée avant la feuille2 (je peux même t'aider en te disant que le nom se termine par les 4 carcatères .xls) : tu auras atteint le but recherché.

Merci
Sylvie
 
Bonjour Sylivie, Gibson, le Fil, le Forum

Ultra à la Bourre, entre deux cafés, j'ai bidulé mon UserForm USF-Copy-Sheets-Array-To-Email-Or-Another-WorkBooks, pour tes besoins...

NB J'ai fait vraiment rapidos, il n'y a aucune gestion d'erreur, mais si tu fais dans l'ordre les opérations ce devrait te dépanner pour l'instant...

Si il y a des Bug, (Probables) essaie d'être le plus précise possible sur les lignes de codes concernée ainsi que le déroulement exact des opérations que tu actionnais...

Bonne Journée, j'ai vu qu'il y avait des 'passages de paliers' mais franchement je n'ai pas eu le temps de féliciter personne, ne m'en voulez pas, sorry.

Bien à Vous et bonne journée à Toi Sylvie en 'Beta Testeuse' lol

@+Thierry
[file name=USF_Copy_Sheet_Special_V00.zip size=28104]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Copy_Sheet_Special_V00.zip[/file]
 

Pièces jointes

Bien le Bonjour Bertrand, le fil, le Forum

pour répondre à ta demande je t'adresse les 2 fichiers en question :
1) le fichier source : pour simplifier, je ne t'ai laissé que 3 feuilles de salariés (au lieu des 76 ce mois) et j'ai allégé ce fichier des feuilles de récap, cumul etc et de toutes les macros correspondantes que Baside et Chti160 ont élaborées précédemment
2) Le fichier d'arrivée composé de 2 feuilles.

Nous en sommes donc au stade où :
A) je suis dans mon classeur source, j'ouvre l'USF de Thierry que tu trouveras ici (Lien supprimé)
Au préalable il faut suivre les directives de Thierry pour que la feuille soit copiée avant ma feuille 2 sur mon classeur d'arrivée et faire la modif suivante :

Tu vas dans le Code du UserForm 'USF1' et tu détectes la Private Sub :

Private Sub CommandButton1_Click()

Tu descends à la ligne 123 : tu vas voir ceci :
WB1.Worksheets(MyArray(i)).Copy After:=WB2.Worksheets(WB2.Worksheets.Count)

Tu le remplaces pûrement et simplement ce code par celui-ci :
WB1.Worksheets(MyArray(i)).Copy Before:=WB2.Worksheets(1)

B) je commence par copier la feuille ALVES.xls par exemple dans mon fichier d'arrivée.
.... je veux juste que les formules de ma feuille 2 se fasse sur cette feuille.

C) Quand j'ai terminé mes calculs de couts en feuille 2 je clique sur le bouton 'Enregistrer' en feuille 2 et hop l'affaire est bouclée
Je n'ai plus qu'à recommencer pour les 75 autres salariés.

J'espère avoir été claire

Merci encore et bon courage

Sylvie

ps pourrais tu m'indiquer comment faire référence à un fil précédent sans avoir à faire 'copier le raccourci' car je ne sais pas faire 🙁
 
Bonjour Thierry, le fil, le forum,

ne t'inquiète pas Thierry, bien sur que je l'ai vu ton post. Et en bonne bêta testeuse que je suis, je teste 😉
Je te ferais un compte rendu précis et détaillé d'ici ce soir.

Mais comme Bertrand trouve que l'on se complique la vie, je lui ai redonné les clefs du problème initial mais qui n'en est presque plus un grâce à toi.

Bon après midi
Sylvie
 
Re Sylvie40, Thierry, le fil

Voici voila ma contribution :

ouvrir les deux fichiers
appuyer sur recherche XLS
choisir un nom dans la liste

et hop

(sur que le code peux être amélioré _Thierry, lol)

[file name=temp.zip size=46551]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/temp.zip[/file]
 

Pièces jointes

Salut tout le monde

Eh ben, moi aussi, je vous propose une petite variante comme çà, pour le plaisir...
[file name=nomfeuille2.zip size=21871]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/nomfeuille2.zip[/file]
 

Pièces jointes

Bonjour Mutzik, Gibson, (Arf c'est Rock N Roll ce Fil), re Bonjour Sylvie...

Dis-moi Sylvie, t'es une petite 'Filou' toi, hein ?

Elle est très 'zolie' cette formule avec des Champs Nommées...
=IF(SUM(IF(Zone<>'',1/COUNTIF(Zone,Zone)))<ROWS(A$19:A20),'',INDEX(ColZone,SMALL(IF(COUNTIF(A$18:A19,Zone)=0,IF(Zone<>'',ROW(Zone))),1)))

Soit :
ColZone =Feuil1!$D$1:$D$35
TotGrdDep =Feuil1!$F$5:$F$35
TotHeures =Feuil1!$B$5:$B$35
TotIntemp =Feuil1!$C$5:$C$35
TotPaniers =Feuil1!$E$5:$E$35
Zone =Feuil1!$D$5:$D$35

En prime il y des d'autres zolis Names :
Salariés ='D:\\OpenOffice\\[CHANTREAU.xls]Paramètres'!$A$4:$D$72
Etc etc....

Mais ça c'est un souci (Quand on ne le sait pas !!!lol), c'est certain que remplacer le nom d'une Feuille dans les Formules c'est 'Fingers In The Nose' mais avec des champs nommés c'est bien plus délicats vu que ces Plages Nommées n'existent pas dans tes feuilles du Classeur 'Fichier source.xls'

C'est sur que ça va devenir un peu usine à gaz cette histoire !! Et bon... je ne sais pas du tout quand j'aurai du temps pour la fabriquer...

Pour le travail de mes copains, je pense que Mutzik s'en sort pas trop mal avec cette 'surprise' avec de noms de plage, mais je n'ai pas eu plus de temps pour approfondir... Mais Gibson s'est fait avoir comme moi !! lol

Bon je vous laisse j'ai du taff !!!

Bon Aprèm
@+Thierry
 
Rebonjour Bertrand, Thierry, Gibson, le Forum,

je n'ai qu'un mot : BRAVO !!
C'est la classe !
Encore merci !

Je vais donc abuser de tes compétences en te posant quelques questions ou en te signalant quelques anomalies :

1) Lorsque j'ai selectionné une feuille source et fait enregistrer et si je reclique sur ta liste déroulante j'ai un code erreur.
2) j'ai également un message d' erreur cellule F9 feuille 2 (Filename)si la cellule C2 de la feuille 1 (matricule) est déja du type '0086

3) Pourrais t'on imaginer que je reprenne en G6 (cout patronal) soit le contenu d'une cellule figurant dans la feuille source soit le contenu d'une cellule provenant d'un autre fichier ou d'une 4eme feuille qui comprendrait 3 colonnes : matricule du salarié, nom et cout patronal (avec une RECHERCHEV sur le matricule ca serait tres simple mais où placer cette information selon toi ?)

3) Pourrais tu m'écrire une petite macro me permettant de copier les valeurs de la plage R19:T29 pour chaque salarié dans une feuille ou un classeur distinct avec à l'arrivée l'ordre suivant : 1 - le matricule au format texte (T19 à T29)
2 - le chantier (S19 à S29)
3- la répartition analytique (format nombre à trois decimales)
(le nec plus ultra serait bien sur de ne recopier que les 3 cellules des lignes non vides c'est à dire si R non vide; mais sinon je m'en débouillerais facilement)

Je t'explique rapidement pourquoi je fais cette manip car tu l'as mérité : le but ultime est que j'alimente un dernier tableau (à 7 colones) qui m'a été élaboré par Thierry (ah s'il n'avait pas été là ... ) avec ces seules valeurs (matricule (colB), code chantier (colD), pourcentage (colE)) lequel grace à un USF magique du Roi Thierry, sera transformé en format txt et importé directement dans un logiciel de paie. Et ainsi j'obtiens ma ventilation analytique par salarié et par chantier pour un mois donné.

Et voila ! 🙂

Merci encore à toi et du temps que tu as consacré à mon post.

Sylvie
 
Bonsoir Thierry, le fil, le forum,

et voilà que je me fais gronder !
🙁

C'est la faute de Monique tout cela ! mais non .... Je plaisante !!
'Monique, si tu m'écoutes ... 😉 '
J'ai compris qu'il ne fallait pas hésiter à nommer des zones alors je nomme, je nomme et je nomme tout ce qui bouge.
Je ne pensais pas que ca allait t'embeter Thierry ! Tu m'avais juste demandé si il y avait des feuilles cachées ! Et en toute honneteté j'ai répondu 'Non' :whistle:

Mais y ce que tu ne sais pas encore c'est que mes champs nommés sont rigoureusement identiques au départ comme à l'arrivée (du moins pour la plage concernée)
Heu au nom de feuille près.
je le jure !!

Tu m'en veux ? :unsure:

Bon je vais voir de ce pas la variante de Gibson

A+ tard
Sylvie
 
Re Bonjour,

Helas, non Gibson je n'ai pas que trois cellules qui font référence à la feuille1 car toutes les formules appelent des noms de zones se trouvant en feuille précédente.

Tu vas m'en vouloir aussi pour ne pas l'avoir claironné? 🙁

(Bertrand au secourrrrrrrrrs ......... :woohoo: )


Merci à vous tous
Je compte sur vous ! 😉

Sylvie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour