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
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