Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Changer le classeur lié chaque année

  • Initiateur de la discussion Initiateur de la discussion Martini
  • 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 !

M

Martini

Guest
Bonjour.

Je voudrais reporter la valeur d'une cellule d'un onglet de "classeur 2" dans mon "classeur 1" avec la possibilité de changer le nom du "classeur 2" (en "classeur 3" pour l'an prochain).

En clair, je voudrais avoir le résultat de ='[budget2007.xls]Budget global 2007'!$D9/12*B3 dans ma cellule cette année et ='[budget2008.xls]Budget global 2008'!$D9/12*B3 l'année prochaine.

J'ai une date sous forme 01/06/2007 dans mon "classeur 1" et ça serait pratique de pouvoir en récupérer l'année pour modifier le résultat de la cellule.

......comment fais-je 😕
Merci pour vos idées 🙂
 
Re : Changer le classeur lié chaque année

Salut,
Je dis "suite de quatre chiffres" et pas "2007" parce qu'il faut que ça marche l'année prochaine, et dans deux ans, et dans trois ans 😉
 
Re : Changer le classeur lié chaque année

Re,

chercher une suite de chiffre, c'est possible mais le mieux est sans doute de "repérer" la suite de chiffre.
Dans ton cas, par exemple, je chercherais "Budget global" en sachant que derriere, il doit y avoir 2007, 2008 ....2052 .. etc ... et je remplacerais "Budget global xxxx" par "Budget global yyyy"
 
Re : Changer le classeur lié chaque année

Catrice à dit:
je remplacerais "Budget global xxxx" par "Budget global yyyy"
C'est ce que je veux. Mais alors comment est-ce que je peux remplacer "Budget global xxxx" par "Budget global " & Range("A5") sans connaître la valeur de "xxxx" ?
 
Re : Changer le classeur lié chaque année

Re,

J'ai compris 😀
J'en ai même rajouté un bout pour que ça marche aussi pour la première année 😎


EDIT : Dans mon vrai classeur, ça ne marche pas 🙁
Je vous mets mon code complet (commenté) :

Code:
Sub DateBudget()
Application.DisplayAlerts = False
Dim annee As String
Sheets("Calculs").Select [COLOR="Green"]'C'est la feuille depuis laquelle on lance l'ensemble des calculs[/COLOR]
annee = Range("M28") [COLOR="Green"]'C'est là que l'année à prendre en compte pour le budget se trouvera.[/COLOR]    Sheets("Matrice Budget").Select [COLOR="green"]'C'est cette feuille qui contient les formules à modifier[/COLOR]
Set X = ActiveSheet.Cells.Find(What:="[budget2", LookIn:=xlFormulas, LookAt:=xlPart)
If Not X Is Nothing Then
    firstAddress = X.Address
    Do
        Debut = InStr(1, X.Formula, "[budget2")
        ancien = Mid(X.Formula, Debut, 11)
        Application.DisplayAlerts = False
        X.Value = Application.Substitute(X.Formula, ancien, "[budget2" & Right(annee, 3))
          [COLOR="green"]'(J'ai dû demander à trouver "budget2" pour pas qu'il confonde donc j'enlève le "2" de
          'la date. Ca ne fonctionnera plus en l'an 3000 mais c'est acceptable[/COLOR]
    Set X = ActiveSheet.Cells.FindNext(X)
    Loop While Not X Is Nothing And X.Address <> firstAddress
End If


Set X = ActiveSheet.Cells.Find(What:="Budget global", LookIn:=xlFormulas, LookAt:=xlPart)
If Not X Is Nothing Then
    firstAddress = X.Address
    Do
        Debut = InStr(1, X.Formula, "Budget global")
        ancien = Mid(X.Formula, Debut, 18)
        X.Value = Application.Substitute(X.Formula, ancien, "Budget global " & annee)
          [COLOR="green"]'C'est ton code[/COLOR]
    Set X = ActiveSheet.Cells.FindNext(X)
    Loop While Not X Is Nothing And X.Address <> firstAddress
End If
    Sheets("Calculs").Select
Application.DisplayAlerts = True
End Sub

J'ai un prooblème dès la ligne "X.Value = Application.Substitute(X.Formula, ancien, "[budget2" & Right(annee, 3))" : Excel me demande quel onglet je veux lier lorsque budget2008 est fermé et annonce un bug sans rien demander lorsque que budget2008 est ouvert.

Une (brillante) idée ?
 
Dernière modification par un modérateur:
Re : Changer le classeur lié chaque année

Re,
J'ai édité mon message précédent. J'ai un problème plus important en fait :/


EDIT : Ma formule fonctionnait dans ton classeur. Puis je l'ai lancée avec mon classeur budget2007 ouvert et ça a planté pareil. Depuis (depuis qu'Excel sait de quel classeur il s'agit je suppose), ça plante.
 
Dernière modification par un modérateur:
Re : Changer le classeur lié chaque année

Re,
Ca marche pas non plus :/

En fait, le problème vient du fait que :
- J'ai DEUX dates dans la même formule
- Le classeur est connu pour excel et il cherche à comprendre ce qu'il se passe quand on commence par modifier une date qui correspond pas à la seconde (et il coupe et demande avant qu'on ait le temps de modifier la seconde).


Je te joins mon fichier pour que tu comprennes. La quatrième formule est la mienne avec laquelle ça ne fonctionne pas.
Assure-toi que le chemin vers le second fichier (avec le budget) est bon pour que ça bugge 😀
 

Pièces jointes

Dernière modification par un modérateur:
Re : Changer le classeur lié chaque année

Bonsoir,

J'ai réfléchi à une autre solution pour ton probleme de lien :

Sub Test()
Application.DisplayAlerts = False
For Each X In ActiveWorkbook.LinkSources
Debut = InStr(1, X, "Budget global")
If Debut <> 0 Then
Ancien = Mid(X, Debut, 18)
MsgBox X
ActiveWorkbook.ChangeLink Name:=X, _
NewName:=Application.Substitute(X, Ancien, "Budget global " & ActiveSheet.Range("A5")), _
Type:=xlExcelLinks
End If
Next
Application.DisplayAlerts = True
End Sub

LinkSource et ChangeLink me semblent plus appropriés.
Dans l'exemple ci-dessus, je ne traite qu'un lien, il faudrait rajouter des Select Case pour gérer chaque lien et modifier le lien vers le bon classeur et le bon onblet.
NB - etant donné que chaque fichier change de nom, il serait peut etre plus simple si le nom d'onglet etait tjs le meme.
Exemple :
Fichiers : Budget 2007.xls, Budget 2008.xls etc ...
Et dans chaque fichier des onglets : budget salaires, Budget global etc ...
 
Re : Changer le classeur lié chaque année

Merci pour ton aide, c'est très bien 😉

Dans chaque nouveau fichier, il y a les anciens onglets des anciens classeurs mais on pourrait effectivement donner un nom générique constant à l'année en cours et le transformer en "XXX 2008" ou "XXX 2009" à la fin de l'année.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
2
Affichages
1 K
M
P
Réponses
9
Affichages
15 K
Pascalou333
P
B
Réponses
3
Affichages
1 K
bobylecoyote
B
M
Réponses
7
Affichages
2 K
murdoc
M
G
Réponses
2
Affichages
1 K
GClaire
G
A
Réponses
5
Affichages
1 K
Pascal
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…