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

changer l'année

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

breeze

XLDnaute Occasionnel
J'ai une question un peu niaiseuses.
Je travaille dans une école et je voulais savoir s'il y a une facon de faire changer la date d'un fichier excel à tous les 1er juillet pour passer de l'année 2011-2012 à 2012-2013 et ainsi de suite à tous les 1er juillet.
Est-ce faisable???

Merci
 
Re : changer l'année

Bonjour
La question est beaucoup trop vague pour qu'on puisse y répondre.
Oui évidemment c'est faisable... Si ta date est écrite en A1 tu la changes
trèfle de plaisanteries, sans voir le fichier la question n'a pas vraiment de sens...
 
Re : changer l'année

Bonjour breeze, salut Misange 🙂

S'il s'agit de renommer des fichiers, vous pouvez utiliser un fichier nommé par exemple "Renommer" et mettre dans ThisWorkbook cette macro :

Code:
Private Sub Workbook_Open()
Dim a%, chemin$, fichier$, txt$
a = Year(Date)
If Date >= DateSerial(a, 7, 1) Then 'après le 1er juillet
  chemin = ThisWorkbook.Path & "\" 'à adapter
  fichier = Dir(chemin & "*" & a - 1 & "*" & a & "*.xls*") 'fichiers de l'année précédente
  While fichier <> ""
    txt = Replace(fichier, a, a + 1)
    txt = Replace(txt, a - 1, a)
1   On Error Resume Next 'si le fichier est ouvert...
    Name chemin & fichier As chemin & txt 'renomme le fichier
    If Err Then
      Workbooks(fichier).Close False '...on le ferme
      GoTo 1
    End If
    fichier = Dir
  Wend
End If
End Sub
Quand on ouvrira "Renommer" les fichiers Excel situés dans le même répertoire seront renommés avec les nouvelles années.

Nota : nous sommes fin mars et pour pouvoir tester la macro mettez un 3 ici :

If Date >= DateSerial(a, 3, 1) Then

A+
 
Dernière édition:
Re : changer l'année

Re,

Si le nouveau fichier existe déjà (???) GoTo 1 bouclera sans fin, alors utiliser plus simplement :

Code:
Private Sub Workbook_Open()
Dim a%, chemin$, fichier$, txt$
a = Year(Date)
If Date >= DateSerial(a, 7, 1) Then 'après le 1er juillet
  chemin = ThisWorkbook.Path & "\" 'à adapter
  fichier = Dir(chemin & "*" & a - 1 & "*" & a & "*.xls*")
  While fichier <> ""
    txt = Replace(fichier, a, a + 1)
    txt = Replace(txt, a - 1, a)
    On Error Resume Next 'si le fichier est ouvert...
    Name chemin & fichier As chemin & txt 'renomme le fichier
    fichier = Dir
  Wend
End If
End Sub
A+
 
Re : changer l'année

Re,

Voici la bonne manip pour renommer un fichier comme XXX 2011-2012 quand on l'ouvre.

1) Créer un fichier Renommer et mettre dans ThisWorkbook ces macros :

Code:
Private Sub Workbook_Open()
Application.OnTime Now, "ThisWorkbook.Renomme"
End Sub

Sub Renomme()
Dim a%, chemin$, fichier$, txt$
a = Year(Date)
If Date >= DateSerial(a, 7, 1) Then 'après le 1er juillet
  chemin = ThisWorkbook.Path & "\" 'à adapter
  fichier = Dir(chemin & "*" & a - 1 & "*" & a & "*.xls*")
  While fichier <> ""
    txt = Replace(fichier, a, a + 1)
    txt = Replace(txt, a - 1, a)
    On Error Resume Next 'si le fichier est ouvert on le ferme
    Workbooks(fichier).Close False
    Name chemin & fichier As chemin & txt 'renomme le fichier
    Application.EnableEvents = False
    If Err = 0 Then Workbooks.Open chemin & txt 'rouvre le fichier
    Application.EnableEvents = True
    fichier = Dir
  Wend
End If
End Sub
2) Masquer la fenêtre de Renommer, fermer le fichier en l'enregistrant.

3) Dans les fichiers nommés XXX 2011-2012 mettre dans ThisWorkbook cette macro :

Code:
Private Sub Workbook_Open()
Workbooks.Open ThisWorkbook.Path & "\Renommer"
End Sub
Chaque fichier sera renommé quand on en ouvre un après le 1er juillet.

A+
 
Dernière édition:
Re : changer l'année

Re,

Une variante plus simple (peut-être meilleure) à la solution du post #5.

1) Mettre dans le ThisWorkbook du fichier Renommer (rappel : fenêtre masquée) :

Code:
Private Sub Workbook_Open()
Application.OnTime Now, "ThisWorkbook.Renomme"
End Sub

Sub Renomme()
Dim a%, fichier$, txt$, chemin$
a = Year(Date)
If Date >= DateSerial(a, 7, 1) Then 'après le 1er juillet
  On Error Resume Next 'sécurité
  fichier = ActiveWorkbook.Name
  If fichier Like "*" & a - 1 & "*" & a & "*" Then
    txt = Replace(fichier, a, a + 1)
    txt = Replace(txt, a - 1, a)
    chemin = Workbooks(fichier).Path & "\"
    Workbooks(fichier).Close False
    Name chemin & fichier As chemin & txt 'renomme le fichier
    Application.EnableEvents = False
    Workbooks.Open chemin & txt 'rouvre le fichier
    Application.EnableEvents = True
  End If
End If
End Sub
2) Dans le ThisWorkbook du fichier XXX 2011-2012 mettre plutôt une macro Workbook_Activate :

Code:
Private Sub Workbook_Activate()
Workbooks.Open ThisWorkbook.Path & "\Renommer"
End Sub
Donc ici seul le classeur actif est renommé.

A+
 
Dernière édition:
Re : changer l'année

Bonjour, salut les autres,

Je simplifie peut-être un peu trop, une petite formule parmi bien d'autres :
Code:
=2011+DATEDIF(40725;AUJOURDHUI();"y")&"-"&2012+DATEDIF(40725;AUJOURDHUI();"y")
 
Re : changer l'année

Re, salut hoerwind,

Mais qu'est-ce que j'ai été chercher avec ce fichu fichier Renommer 😕

Voyez cette unique macro dans le ThisWorkbook du fichier joint :

Code:
Private Sub Workbook_Open()
Dim a%, nomfich$, nouveau$, chemin$
a = Year(Date)
If Date < DateSerial(a, 3, 1) Then Exit Sub '1er mars (pour tester)
'If Date < DateSerial(a, 7, 1) Then Exit Sub '1er juillet
nomfich = Me.Name
If Not nomfich Like "*" & a - 1 & "*" & a & "*" Then Exit Sub
nouveau = Replace(nomfich, a, a + 1)
nouveau = Replace(nouveau, a - 1, a)
chemin = Me.Path & "\"
If Dir(chemin & nouveau) <> "" Then _
  MsgBox "Le fichier '" & chemin & nouveau & "' existe déjà !": Exit Sub
Me.SaveAs chemin & nouveau 'enregistre sous le nouveau nom
Kill chemin & nomfich 'supprime l'ancien fichier (facultatif)
End Sub
Les solutions des posts précédents sont donc nulles et non avenues 😡

A+
 

Pièces jointes

- 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

Réponses
18
Affichages
598
Réponses
23
Affichages
676
Réponses
14
Affichages
766
Réponses
5
Affichages
201
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…