Fusionner des cellules si elles ont la même valeur

Bonjour,

Voici mon exemple (fichier ci-joint), j'ai sur la cellule B4 la date de départ ( critère que l'on choisi) et sur la cellule d'après j'ai la formule B4+7 que j'étend sur toute la ligne. Ensuite sur la ligne 5 j'ai le N° ISO de semaine qui correspond à la date au dessus et sur la ligne 3 le N° du mois de chaque semaine.

Je souhaiterai fusionner les cellules sur la lignes 3 si elles ont la même valeur ( ex: fusionner les cellules du mois d'octobre) sachant que la date de départ n'est jamais la même.

Cela est t'il possible ?

j'espère avoir été assez claire.

359test.xlsx (8.98 Ko)

en vous remercient d'avance pour vos réponse.

Cordialement

Bonjour,

Oui c'est possible en utilisant VBA, voici le résultat en pièce jointe.

1'737copie-de-test.xlsm (18.02 Ko)

Bonjour, @Ausecour

Merci beaucoup pour ta réponse.

J'ai bien compris ton code @Ausecour et je pense pouvoir l'appliquer pour mon sujet.

J'ai juste pas compris la partie :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("b1"), Target) Is Nothing Then fusion
End Sub

Si tu peux me l'expliquer.

Encore un grand merci

Bonjour,

Oui je peux expliquer cette partie du code, commençons par:

Private Sub Worksheet_Change(ByVal Target As Range)

C'est la déclaration automatique de la macro événementielle de la feuille qui se lance lorsqu'une action spécifique est réalisée sur celle-ci, ici on voulait capturer un changement de la date de départ sur la cellule B1, cette macro donne également un objet Target que l'on peut utiliser, à savoir la cellule qui est modifiée.

Pour la suite je fais un test pour savoir si c'est bien la cellule B1 qui a été modifiée, on pourrai tester ça en demandant si la ligne et la colonne de Target sont bien 1 et 2 mais on peut aussi faire ça avec Intersect qui détermine si il y a une intersection entre plusieurs plages de cellules. On peut donc fournir a Intersect notre objet Target et dire quelles cellules, si elles sont modifiées, lancent le bout du code, puis tester si tout ça donne quelque chose, comme Intersect renvoie un objet, on peut tester si Intersect Is Nothing, en clair si la fonction ne renvoie rien (pas d'intersection trouvée), comme ici on veut lancer le code si il y a une intersection, on ajoute Not pour dire "si il y a une intersection alors". Si le test logique est validé, on appelle ensuite la macro qui s'appelle "fusion".

Voilà! J'espère avoir été clair.

Merci

encore une question :

sur l'exemple je n'avais qu'une feuille de calcule, mais sur mon sujet j'ai plusieurs feuille et j'aimerai que la fonction "fusion" ne s'applique que sur une feuille.

Pour le moment il faut que j'exécute manuellement la fonction pour la modifier

Si j'ai bien compris c'est:" Private Sub Worksheet_Change(ByVal Target As Range)" qui doit lancer automatiquement ma macro si la date change ?

Du coup qu'est ce que je doit changer pour qu'elle le lance automatiquement sur la feuille que je souhaite ?

Il faudrait recopier cette macro sur l'autre feuille où elle doit être lancée.

Ok super

encore un grand merci pour tes réponses et explication qui mon été d'une grande aide

Rechercher des sujets similaires à "fusionner ont meme valeur"