Fusionnez les cellules identiques

Bonjour,

J'ai créer un calendrier sur Excel qui se présente ainsi:

sans titre

Sur la première ligne j'aimerais faire en sorte que les noms de mois s'affiche qu'une seule fois et que toutes les cellules soit fusionnées, idem pour la deuxième ligne et les numéros de semaines. Comment faire ? Utiliser une macro ? Sachant que je n'ai aucune connaissance en programmation !

J'espère avoir été assez précis, merci d'avance pour votre aide!

Axel,

Bonjour,

Perso, je pense que fusionner des cellules n'est pas la bonne solution. Si votre fichier peut admettre les macros, le code ci-dessous vous donne le résultat de cette capture d'écran :

Vous ne devriez pas travailler en norme iso pour vos semaines ?

capture
Option Explicit

Sub TestCalendrierMoisEtSemaines()
    CalendrierMoisEtSemaines Sheets("Feuil1")
End Sub

Sub CalendrierMoisEtSemaines(ByVal Sh As Worksheet)

Dim I As Integer, DerniereColonne As Integer, SemaineEnCours As Integer, MoisEnCours As Integer
Dim DateEncours As Date

    With Sh
         DerniereColonne = .Cells(4, .Columns.Count).End(xlToLeft).Column
         Range(.Cells(1, 5), .Cells(2, DerniereColonne)).ClearContents
         DateEncours = CDate(.Cells(4, 5))

         SemaineEnCours = WorksheetFunction.IsoWeekNum(DateEncours)
         MoisEnCours = Month(DateEncours)
         .Cells(2, 5) = SemaineEnCours
         .Cells(1, 5) = UCase(Format(DateEncours, "mmmm"))

         For I = 5 To DerniereColonne
             DateEncours = CDate(.Cells(4, I))
             If WorksheetFunction.IsoWeekNum(DateEncours) <> SemaineEnCours Then
                SemaineEnCours = WorksheetFunction.IsoWeekNum(DateEncours)
                .Cells(2, I) = SemaineEnCours
             End If
             If Month(DateEncours) <> MoisEnCours Then
                MoisEnCours = Month(DateEncours)
                .Cells(1, I) = UCase(Format(DateEncours, "mmmm"))
             End If
         Next I
    End With
End Sub

Bonjour Eric,

Merci beaucoup pour votreaide, en effet pour le numéro de semaine il me les fallait bien en iso j'ai donc résolu le problème.

Petit question, pourquoi fusionner les cellules n'est pas une bonne solution? Est-ce possible sinon de faire apparaître le nom du mois au milieu de son espace ? Ce serait juste pour que le calendrier soit plus lisible.

La macro fonctionne bien mais le petit problème c'est qu'elle efface la formule présente dans les cases et lorsque je modifie la date de début du calendrier le calendrier ne s'actualise pas! Est-ce possible de remédier à cela? Ou c'est peut être tout simplement pas possible?

Merci beaucoup!

De quelle date s'agit-il ? Je ne touche pas à la ligne 4.

Quant aux cellules fusionnées, c'est plutôt galère à gérer. Dans votre cas, vous pourriez en effet le faire mais il faudrait effacer totalement les cellules des lignes 1 et 2 et non pas seulement effacer leur contenu.

Pour borner les semaines et les mois, il suffit de récupérer les valeurs de I et de fusionner.

D'accord, pour la date du début de calendrier elle se trouve en C4 !

Dans le module de l'onglet Feuil1, ajouter l'événement Worksheet_Change :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

        If Target.Count > 1 Then Exit Sub

        If Not Intersect(Target, Range("C4")) Is Nothing Then
           CalendrierMoisEtSemaines Sheets("Feuil1")
        End If

End Sub

Bonjour,

Un exemple d'approche sans VBA Ici

@ bientôt

LouReeD

Rechercher des sujets similaires à "fusionnez identiques"