Macro, changé de feuille

Fermé
Jeremie - 20 oct. 2015 à 02:28
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015 - 22 oct. 2015 à 09:01
Bonjour,

Voila j'ai découvert le macro pour le travaille, et aujourd'hui je suis confronté à un petit dileme.

j'aimerais avoir un macro qui puisse me rendre automatique ma formule, mais cette formule fait référence à une cellule de la feuille précédente.

j'ai trouvé sur différent forum comment faire lorsque la feuille est déja créé, mais mon problème sait que chaque semaine je crée une nouvelle feuille à mon document excel.

Donc je voudrais que lorsque je crée une nouvelle feuille excel, le macro aille directement dans la cellule souhaité et crée la formule avec le feuille de la semaine passé.

exemple:

j'ai 3 feuilles qui corresponde chacune à une semaine du mois de janvier.

feuille 1 =semaine 1
feuille 2 =semaine 2
feuille 3 =semaine 3

dans tous ces feuille le document est le même, ma formule est comme suite:

exemple:
(semaine 2) ma formule reprend les info mise en semaine 2 - celle de la semaine 1

soit A1-'semaine 2'A1

pour le semaine 3

ma formule reprend les info mise en semaine 3 - celle de la semaine 2

soit A1-'semaine 3'A1

jusque la j'y arrive.

se que j'aimerai c'est quand je vais crée ma feuille pour la semaine 4, est bien que la formule A1-'semaine 3'A1 ce fasse automatiquement et sais la que je bloque.

j'espère être assez claire dans mon explication.
je débute seulement dans le VBA donc j'espère juste ce que je demande n'est pas trop compliqué a réaliser

A voir également:

6 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 oct. 2015 à 11:15
Bonjour,

Comment fais-tu jusqu'à présent ?
Est-ce que tu copies la feuille puis tu modifies manuellement la formule ?
Je te pose la question parce que la manip ne semble pas très compliquée et je ne vois pas ce qui justifie une macro.

Sinon, pour nous permettre de t'aider efficacement, il faudrait que tu joignes un fichier à la demande.
Ce fichier devra contenir à minima 2 feuilles (Semaine 1 et Semaine 2).

Pour joindre le fichier, tu peux utiliser https://www.cjoint.com/
Ensuite, reviens coller ici le lien donné par le site.

A+
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
20 oct. 2015 à 11:18
Bonjour,

Regarde si l'utilisation de la fonction INDIRECT n'est pas mieux qu'une macro (en gros, je vois pas ce qu'on peut faire mieux en macro) : https://www.cjoint.com/c/EJujrUZRjzZ

A+
0
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015
21 oct. 2015 à 01:44
Bonjour,

merci pour vos réponses, j'ai consulté la fonction indirect mais elle n'aboutie pas a ce que je souhaite.

voici le lien de mon classeur pour vous explique visuellement.
https://www.cjoint.com/c/EJuxLoSn2sV

les case en rose son les formule que je souhaite qui se mette a jours automatiquement lorsque je vais crée la feuille 4, comme vous le voyais elle n'est toujours pas crée, car je la crée chaque semaine et non d'avance.

le faite que je souhaite le faire sous forme de macro me semblé la plus simple et le plus rapide car je vous est mis que le mois de janvier sur chaque feuille, mais sinon il y a les 12 mois de l'année, est grâce a cela je gagnerai pas mal de temps car je doit le faire non pas sur un seul document comme celui-ci mais sur plusieurs.

merci d'avance
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 oct. 2015 à 06:35
Bonjour,

Ton fichier en retour avec une macro qui effectue la copie de la dernière feuille.
https://www.cjoint.com/c/EJveHLg1LBU

Le nom de feuille sera éventuellement à adapter.

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015
21 oct. 2015 à 07:15
Je te remercie c'est vraiment ça que je recherche sur les forums depuis pas mal de jour, mais je vais vous embêter juste une dernière fois, pour ma culture personnel et pour m'améliorer serait-il possible d'avoir l'explication du comment tu a procédé pour faire la macro ?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
21 oct. 2015 à 07:58
Je ne suis pas sûr d'avoir compris le sens de ta question.

Pour ma part, devant un problème de programmation relativement simple, je me contente de faire une analyse succincte afin de déterminer une solution.
Ensuite, il reste à écrire le code pour traduire cette analyse.

Pour définir le code qui correspond aux actions que tu souhaites réaliser, tu disposes d'un outil très intéressant qui est l'enregistreur de macro.
Après avoir fait l'enregistrement, tu peux ainsi voir comment cela a été traduit en VBA.
Par contre, il faut savoir que ce code doit être généralement modifié pour être adapté plus précisément. Cela demande de connaitre VBA.

J'espère avoir répondu (partiellement) à ton attente.

A+
0
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015
21 oct. 2015 à 15:05
J'aimerais que tu m'explique le début de ton code, comment tu a réalisé la variable, pasque je ne comprend pas encore vraiment comment on en fait une.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015
22 oct. 2015 à 08:56
Voici le code commenté.
Dis-moi si tu as besoin d'autres explications.

Sub Copie_Feuille()
'Déclaration des variables
Dim NomF_Nouveau As String, NomF_Ancien As String
'Nom de la dernière feuille du classeur
NomF_Ancien = Sheets(Sheets.Count).Name
'Nom de la nouvelle feuille
'("Feuil" & N° de la dernière feuille +1)
NomF_Nouveau = "Feuil" & Sheets.Count + 1
'Création d'une nouvelle feuille en copîant l'ancienne
Sheets(NomF_Ancien).Copy After:=Sheets(NomF_Ancien)
'Affectation du nouveau nom à la feuille créée
ActiveSheet.Name = NomF_Nouveau
'Mise en place des formules en tête de colonne
Range("F7").Formula = "=C7-'" & NomF_Ancien & "'!C7"
Range("G7").Formula = "='" & NomF_Ancien & "'!F7"
Range("H7").Formula = "='" & NomF_Ancien & "'!G7"
'Copie des formules sur la colonne
Range("F7:H7").Copy Range("F7:H7", Range("F7:H7").End(xlDown))
End Sub


A+
0
Stuart88 Messages postés 5 Date d'inscription mardi 20 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015
22 oct. 2015 à 09:01
Merci beaucoup pour ton aide, je crois que j'ai tous ce qu'il me faut maintenant
0