VBA fusion cellule conditionnelle

Fermé
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
- 28 févr. 2021 à 13:58
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
- 3 mars 2021 à 10:58
Bonjour à tous,

Je suis en train de construire une planning.

En ligne K12 -NL12, j'ai mis des dates journalières.
Je souhaiterais qu'au dessus en ligne L11-NL11, les cellules se fusionnent pour indiquer le mois correspondant uniquement.

la solution est en VBA me semble-t-il mais je ne maîtrise pas.

Je vous remercie pour votre aide précieuse.

Bonne journée




Configuration: Windows / Internet Explorer 11.0

14 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
28 févr. 2021 à 17:04
Bonjour,

Sous Excel (et VBA), la fusion de cellules c'est le début de la catastrophe !
1
The_boss_68
Messages postés
828
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
15 juillet 2022
155
28 févr. 2021 à 16:43
Bonjour,

Mettre un fichier anonymisé pour une meilleur compréhension

Slts
0
eriiic
Messages postés
24419
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 août 2022
7 100
Modifié le 28 févr. 2021 à 18:15
Bonjour,

j'approuve, éviter les fusions tant qu'on peut.
Tu peux te contenter de mettre le mois sur la 1ère colonne où il apparait ce qui fera exactement pareil.
En K11 :
=K12

En L11, à tirer vers la droite :
=SI(OU(K12="";MOIS(K12)<>MOIS(L12));L12;"")

format de cellule
mmmm-aa

eric


En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
28 févr. 2021 à 19:45
Merci pour vos retours.

La fusion est un souhait de présentation sur un fichier Excel type Gant.

En K12 -NL12, mes dates peuvent varier en fonction d'une formule que j'ai mis en amont.
Aussi, pour plus de lisibilité, je souhaite que la ligne au dessus - L11-NL11 -n'indique que le mois.

Ex : En K12-Z12, j'ai des jours de février, en AA12-BF12, j'ai des jours de mars

Je souhaite que K11-Z11 soient fusionnées avec indication "FEVRIER"
que AA11-BF11 soient fusionnées avec indication "MARS
et ainsi de suite...."

romanza
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
1 mars 2021 à 09:05
Bonjour,

Avec cette procédure :
Option Explicit
Sub FusionnerMois()
Dim r As Range
Dim c As Range
Dim d As Range
   
   Set r = ActiveSheet.Range("K12:NL12")
   With r.Offset(-1)
     .UnMerge
     .ClearContents
     .NumberFormat = "mmmm"
     .HorizontalAlignment = xlCenter
   End With
   For Each c In r.Cells
     If d Is Nothing Then
       Set d = c.Offset(-1)
       d.Value = c.Value
     End If
     If Month(c.Offset(0, 1).Value) <> Month(d.Value) Then
       ActiveSheet.Range(d, c.Offset(-1)).Merge
       Set d = Nothing
     End If
   Next c
   
End Sub
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 10:05
Bonjour Patrice,

Merci pour le temps passé.

Ce qu'il y a c'est que j'ai une barre de défilement des jours associée.

Je te propose de t'envoyer le fichier mais ici je ne sais pas comment....

romanza
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
1 mars 2021 à 10:22
Bonjour,

Déposes le fichier avec des commentaires explicatifs sur
https://mon-partage.fr/
et mets le lien obtenu dans ton prochain message.
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 10:33
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
Modifié le 1 mars 2021 à 10:59
Comme quoi il faut toujours poser la bonne question !!!!
Les dates ne sont pas en K12:NL12 mais en J11:NK11 et le résultat attendu n'est plus FÉVRIER mais févr-21.

Ceci dit, la macro fonctionne parfaitement, il suffit d'adapter la plage et le format.

Au lieu de la plage :
   Set r = ActiveSheet.Range("K12:NL12")
Il fallait l'adapter :
   Set r = ActiveSheet.Range("J11:NK11")


Et au lieu du format :
     .NumberFormat = "mmmm"

il suffit de le remplacer par :
     .NumberFormat = "mmm-yy"


EDIT : C'est quoi « une barre de défilement des jours associée »
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 11:02
Oui, j'avais adapté pour la plage de cellules.

Mais si tu utilises la barre de défilement des jours en haut, les mois fusionnés ne suivent pas.
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
Modifié le 1 mars 2021 à 11:29
Il faut affecter la macro à la barre de défilement
et ajouter en début de macro :
   Application.ScreenUpdating = False


Et pour plus de fluidité, prévoir d'arrêter les calculs pendant la macro
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 11:47
Merci Patrice cela fonctionne très bien.

Peux-tu m'indiquer le code pour que les cellules mois soit bordurées
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
1 mars 2021 à 11:55
Remplaces :
       ActiveSheet.Range(d, c.Offset(-1)).Merge

Par
       With ActiveSheet.Range(d, c.Offset(-1))
         .Merge
         .Borders.Weight = xlThin
       End With
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 11:59
Merci Patrice

TOP!!

Bonne journée

romanza
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 12:19
Autre souci dont je viens de me rendre compte.

Quand on filtre avec les segments la correspondance mois ne suit pas.

Comment peut-on déclencher la macro à partir du filtre segment?
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 754
1 mars 2021 à 13:33
Dans le module de la feuille TCD, ajoutes :
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
  FusionnerMois
End Sub


0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
1 mars 2021 à 13:40
Merci Patrice,

Impec!

romanza
0
romanza
Messages postés
250
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
4 octobre 2021
2
3 mars 2021 à 10:58
Bonjour Patrice,

Je me permets de te solliciter pour mon projet pour lequel je rencontre 2 questions sur l'onglet "Chronologie des tâches"

Je te joins le fichier et j'ai mis 2 commentaires sur l'onglet correspondant

https://mon-partage.fr/f/tZRhVCpw/


Je te remercie d'avance pour ton aide

Pascal


.
0