Macro "Changer l'année dans tt le classeur"

Bonjour à tous.

Et avant d'oublier : Bonnes fêtes à vous.

Cela fait :

J'utilise une macro faite par Harzer forum du 27 janvier 2017, concernant le changement de l'année dans une série de dates.

Elle fonctionne à merveille.

Je voudrais l'adapter pour l'utiliser dans un classeur avec ts les mois.

Mais (je suis pas doué, mais j'avance), je n'arrive pas à sélectionner ts les mois pour ce changement et de plus le tableau se répète une fois à la fin de celui-ci.

J'ai cherché, pas trouvé. Donc SOS.

Merci à vous.

DARYL. B.

Voici le code et un fichier exemple :

Sub REPLACE()

Dim Mot As Variant
Dim REPLACE As Variant

Application.ScreenUpdating = False

tabloF = Array("JANVIER", "FEVRIER", "MARS", "AVRIL")
For f = 0 To 4

plage = REPLACE
Mot = InputBox("Quelle annnée souhaitez-vous modifier?", Title:="Recherche une Année - Format ""AAAA""")
If Mot = "" Then Exit Sub

REPLACE = InputBox("Par quelle année voulez vous la remplacer ?", Title:="Remplacer l'année trouvée")
If REPLACE = "" Then Exit Sub

Range("G3:G11").Select
Selection.REPLACE What:=Mot, Replacement:=REPLACE
   Next f

End Sub  
13changean.xlsm (51.24 Ko)

Salut Balancie,

Salut le Forum,

Ci-dessous un code qui reprend beaucoup du tiens, hormis la sélection de la plage :

Sub ChangeAnnee()
Dim x As String, y As String
x = InputBox("Quelle annnée souhaitez-vous modifier?", Title:="Recherche une Année - Format ""AAAA""")
y = InputBox("Par quelle année voulez vous la remplacer ?", Title:="Remplacer l'année trouvée")
Cells.REPLACE What:="" & x & "", Replacement:="" & y & ""
End Sub

L'année changera sur toute les feuilles du classeur.

Mais tu a vraiment besoin de sélectionner la plage de cellule où tu souhaite modifier les années ?

Restant à dispo

Bonsoir Juice,

Merci pour la réponse.

Oui dans ce cas précis, j'ai besoin de la plage.

Malgré tout, je garde cette solution, elle va me permettre de travailler sur mon autre projet en le simplifiant.

Pour celui-ci, j'ai trouvé la solution, je la donne elle peut éventuellement servir à d'autres.

Option Explicit
Dim Mot As Variant
Dim REMPLACE As Variant
Dim Ws As Worksheet

Sub REPLACE()
  Mot = InputBox("Quelle annnée souhaitez-vous modifier?", Title:="Recherche une Année - Format ""AAAA""")
  If Mot = "" Then Exit Sub

  REMPLACE = InputBox("Par quelle année voulez vous la remplacer ?", Title:="Remplacer l'année trouvée")
  If REMPLACE = "" Then Exit Sub
    For Each Ws In ThisWorkbook.Worksheets
    Sheets(Ws.Name).Activate
    Set Ws = Sheets(Ws.Name)
      With Ws
        .Range("G3:G11").Select
        Selection.REPLACE What:=Mot, Replacement:=REMPLACE, lookAt:=xlPart
      End With
    Set Ws = Nothing
    Next Ws
    Sheets("JANVIER").Activate
    Range("C11").Select
End Sub
  

Merci encore.

Bonne fêtes.

DARYL.B

Reeee~

Ravie d'avoir pu t'aider (Même si j'ai fais un HS du coup!)!

Un code qui permet de faire un remplacement sur toute les feuilles mais seulement sur la plage sélectionnée :

Sub Replace()
Dim p As Range, x, y As String, Ws As Worksheet
On Error GoTo exitsub
Set p = Application.InputBox("Merci de selectionner la plage où se trouve les années à remplacer sur toute les feuilles :", "Selection plage", Type:=8)
x = InputBox("Quelle est l'année à remplacer :")
y = InputBox("Par quelle année il faut la remplacer :")
For Each Ws In ThisWorkbook.Worksheets
    Ws.Range("" & p.Address & "").Replace What:="" & x & "", Replacement:="" & y & ""
Next Ws
exitsub:
End Sub
  • Je me suis servie de ton For Each
  • J'ai retiré ton Ws.Activate -> Pas besoin d'aller sur la feuille !
  • Les erreurs sont gérées par un On Error GoTo

Si sa peux aussi t'aider

Je te souhaite également de passer de bonne fête de fin d'année!

Juice~

Re- bonsoir,

Que dire...ah oui....Parfait.

Bonne soirée.

DARYL.B

Rechercher des sujets similaires à "macro changer annee classeur"