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

XL 2010 Remplacer année dans feuilles

Blafi

XLDnaute Occasionnel
Bonjour à tous,

Je tiens pour une activité bénévole un fichier de comptabilité qui contient 12 feuilles "Compta septembre" à "Compta décembre" sur lesquelles le mois et l'année sont inscrits en C2:M2, et 12 feuilles "CR Compta Septembre" à "CR Compta décembre" où le mois et l'année sont inscrits en G3.

Mon problème est de changer tous les ans l'année pour redémarrer avec les 24 feuilles adaptées à la nouvelle année (scolaire), donc de remplacer grâce à une macro, par exemple dans le fichier joint le "2017" par "2018".

Vous me direz, si les dates étaient au même endroit, ça simplifierait la chose... mais le modèle de CR m'est imposé par le trésorier et je ne peux le changer...

Il s'agit donc de changer pour toutes les feuilles Compta..." le 2017 de C2:M2 en 2018 (pour cette année, mais je devrait pouvoir choisir l'année pour les suivantes) et pour toutes les feuilles "CR Compta ..." le 2017 qui se trouve en G3, en 2018 (idem pour les années suivantes)...

J'ai bien essayé avec une boucle for each sh ect... mais je n'arrive pas à faire distinguer à ma macro entre les feuilles Compta... et les feuilles CR... La subtilité de la manœuvre échappant à mes connaissances bien que je soupçonne qu'il y ait un "if sh.name like.." mais je n'arrive pas à l'écrire correctement.

Quelqu'un pourrait-il m'aider dans cette construction ?

Je joins un fichier qui ne comporte que les 2 feuilles du mois de septembre, toutes les autres étant identiques.

Merci d'avance et à bientôt
 

Pièces jointes

  • Mon modèle.xlsx
    21.6 KB · Affichages: 17

CHALET53

XLDnaute Barbatruc
Bonjour,

Avec ce code :

Sub modif_date()
Application.ScreenUpdating = False
For Each sht In ActiveWorkbook.Sheets
Sheets(sht.Name).Select
If Left(sht.Name, 6) = "Compta" Then
longueur = Len(Range("C2"))
st = Range("C2").Value
Mid(st, longueur - 3, 4) = "2018"
Range("C2").Value = st
End If
'Stop
If Left(sht.Name, 2) = "CR" Then
longueur = Len(Range("G3"))
st = Range("G3").Value
Mid(st, longueur - 3, 4) = "2018"
Range("G3").Value = st
End If
Next
End Sub


Pour ce qui est du choix de l'année, comment tu veux faire ?
Choisir dans une liste
Saisir dans une boîte de dialogue

a+
 

vgendron

XLDnaute Barbatruc
Hello tous

idée de code pour remplacer 2017 oar 2018 dans les lignes 2 à 4 des feuilles qui commencent par "CR Compta"

VB:
Sub ChangeDate()
For Each ws In Sheets
    If ws.Name Like "CR Compta" & "*" Then
        With ws.Rows("2:4")
            .Replace What:="2017", Replacement:="2018", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        End With
    End If
Next ws
End Sub
 
salut vgendron

au vu du fichier, je dirais qu'il faut d'abord changer 2018 en 2019 et ensuite 2017 en 2018
Code:
Sub ChangeDate()
For Each ws In Sheets
    If ws.Name Like "CR Compta" & "*" Then
        With ws.Rows("2:4")
            .Replace What:="2018", Replacement:="2019", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
            .Replace What:="2017", Replacement:="2018", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        End With
    End If
Next ws
End Sub
 

Blafi

XLDnaute Occasionnel
Re,

Merci à tous les contributeurs pour vos réponses et vos solutions que je vais étudier.

Pour répondre à Chalet 53, j'aimerais rentrer l'année dans une boite de dialogue, mais l'option liste me plairai bien aussi... Que faut-il rajouter dans mon code ?
Pour répondre à Yeahout, faire "remplacer" ne résoudrait pas mon pb puisque l'année est dans la même cellule que le mois, qui varie à chaque feuille..

Je vais naturellement regarder toutes vos solutions et même s'il n'y a pas besoin de macro pour faire ce travail, chercher à construire une macro c'est pour le fun et la satisfaction intellectuelle. De plus ce fichier doit être utilisé par quelqu'un qui ne connait rien à excel et ça ne peut que lui faciliter la vie...

Encore merci à tous et à bientôt.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…