Automatiser la fusion de certaines cellules
Résolu/Fermé
KrioxFear
Messages postés
23
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
1 avril 2017
-
Modifié le 29 mars 2017 à 09:37
KrioxFear Messages postés 23 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 1 avril 2017 - 31 mars 2017 à 18:00
KrioxFear Messages postés 23 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 1 avril 2017 - 31 mars 2017 à 18:00
A voir également:
- Automatiser la fusion de certaines cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Excel fusionner deux cellules - Guide
- Verrouiller cellules excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Display fusion - Télécharger - Divers Utilitaires
4 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 704
31 mars 2017 à 10:26
31 mars 2017 à 10:26
Bonjour,
Comme tu es bien décidé à fusionner, je te met cette macro qui devrait le faire (mode d'emploi) et tu peux installer un bouton pour la lancer. Elle te permet de fusionner la journée et si tu rajoutes des lignes sur la journée, elles se fusionneront.
Même la macro avec des cellules fusionnées se complique, alors bon courage pour cette gestion.
Comme tu es bien décidé à fusionner, je te met cette macro qui devrait le faire (mode d'emploi) et tu peux installer un bouton pour la lancer. Elle te permet de fusionner la journée et si tu rajoutes des lignes sur la journée, elles se fusionneront.
Option Explicit Public Sub Fusion() Dim pos As Long, lig As Long Application.DisplayAlerts = False With ActiveSheet For pos = 1 To .Cells(Rows.Count, "K").End(xlUp).Row If InStr(.Cells(pos, "K").MergeArea.Address, ":") = 0 Then lig = pos Else lig = Mid(.Cells(pos, "K").MergeArea.Address, InStrRev(.Cells(pos, "K").MergeArea.Address, "$") + 1) + 1 End If For lig = lig To .Cells(Rows.Count, "K").End(xlUp).Row If .Cells(lig, "K").Value <> .Cells(pos, "K").Value Then Exit For Next lig If .Cells(lig - 1, "K").Value = .Cells(pos, "K").Value And .Cells(pos, "K").Value <> "" Then With .Cells(pos, "K").Resize(lig - pos, 1) .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End If pos = lig - 1 Next pos End With Application.DisplayAlerts = True End Sub
Même la macro avec des cellules fusionnées se complique, alors bon courage pour cette gestion.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 704
29 mars 2017 à 10:36
29 mars 2017 à 10:36
Bonjour,
mais les réponses que j'ai trouvé ne me convenaient pas car elles incluaient des macros
C'est bien sûr car aucune formule ne te permettra de fusionner des cellules : la formule ne peut affecter que sa cellule de sa présence.
mais les réponses que j'ai trouvé ne me convenaient pas car elles incluaient des macros
C'est bien sûr car aucune formule ne te permettra de fusionner des cellules : la formule ne peut affecter que sa cellule de sa présence.
KrioxFear
Messages postés
23
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
1 avril 2017
Modifié le 29 mars 2017 à 10:44
Modifié le 29 mars 2017 à 10:44
Exemple parfait qu'une fois sortie du contexte, une phrase n'a plus du tout le même sens, surtout si on la coupe.
"et je n'y connais absolument rien donc je n'arrivais pas à adapter la réponse à ma situation."
J'ai compris qu'il fallait utiliser une macro et j'explique que je n'arrive pas à adapter les exemples des gens à mon cas. C'est pourquoi je poste ce message ici en expliquant ma situation pour qu'on puisse me dire ce que je dois faire ou du moins tenter de m'expliquer.
Cordialement,
"et je n'y connais absolument rien donc je n'arrivais pas à adapter la réponse à ma situation."
J'ai compris qu'il fallait utiliser une macro et j'explique que je n'arrive pas à adapter les exemples des gens à mon cas. C'est pourquoi je poste ce message ici en expliquant ma situation pour qu'on puisse me dire ce que je dois faire ou du moins tenter de m'expliquer.
Cordialement,
KrioxFear
Messages postés
23
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
1 avril 2017
29 mars 2017 à 13:27
29 mars 2017 à 13:27
Bonjour,
J'ai pas mal cherché une alternative et je me suis rendu compte que ce que je voulais faire n'allait pas fonctionner parce que les fonctions ne peuvent pas être étirer sur toute la colonne qui les cases n'ont pas la même taille.
Mais finalement ça m'arrange car j'ai fais dans le sens inverse, la fonction est étirée et fonctionne correctement dans la colonne et maintenant j'aimerais fusionner en colonne K les cellules avec le même résultat, ça devrait être plus simple.
J'ai pas mal cherché une alternative et je me suis rendu compte que ce que je voulais faire n'allait pas fonctionner parce que les fonctions ne peuvent pas être étirer sur toute la colonne qui les cases n'ont pas la même taille.
Mais finalement ça m'arrange car j'ai fais dans le sens inverse, la fonction est étirée et fonctionne correctement dans la colonne et maintenant j'aimerais fusionner en colonne K les cellules avec le même résultat, ça devrait être plus simple.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 704
29 mars 2017 à 21:09
29 mars 2017 à 21:09
Bonjour,
Tu as étiré ta fonction et cela fonctionne mais si tu fusionnes, cela ne va plus fonctionner car les cellules fusionnées créent pas mal de problèmes : copie, recopies de formules, etc.
Si c'est pour un problème de présentation, pourquoi ne masquerais-tu pas la police des cellules identiques aux précédentes par une mise en forme conditionnelle ?
Tu as étiré ta fonction et cela fonctionne mais si tu fusionnes, cela ne va plus fonctionner car les cellules fusionnées créent pas mal de problèmes : copie, recopies de formules, etc.
Si c'est pour un problème de présentation, pourquoi ne masquerais-tu pas la police des cellules identiques aux précédentes par une mise en forme conditionnelle ?
KrioxFear
Messages postés
23
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
1 avril 2017
30 mars 2017 à 16:17
30 mars 2017 à 16:17
Bonjour,
Mon tableau se rempli progressivement au fil des jours mais dans aucun cas je ne dois modifier les cases d'une date passée donc ce à quoi j'ai pensé était un bouton de fusion. Chaque jour j'ai juste à cliquer et les cellules identiques de ma colonne K se fusionnent et puis je n'y touche plus.
Dans ce cas normalement seulement la case supérieure est conservée et cette colonne n'a pas de dépendants donc je ne pense pas que ça serait un problème.
Mon tableau se rempli progressivement au fil des jours mais dans aucun cas je ne dois modifier les cases d'une date passée donc ce à quoi j'ai pensé était un bouton de fusion. Chaque jour j'ai juste à cliquer et les cellules identiques de ma colonne K se fusionnent et puis je n'y touche plus.
Dans ce cas normalement seulement la case supérieure est conservée et cette colonne n'a pas de dépendants donc je ne pense pas que ça serait un problème.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 704
30 mars 2017 à 18:40
30 mars 2017 à 18:40
Bonjour,
ma colonne K se fusionnent et puis je n'y touche plus.
En quoi la fusion va empêcher de modifier la date ?
C'est vraiment très curieux de voir que l'on essaye de détourner les fonctionnalités.
- les fusions permettent de modifier la présentation.
- le verrouillage des cellules permet d'en protéger le contenu très efficacement.
dans aucun cas je ne dois modifier les cases d'une date passée
Si tu veux interdire cette modification, utilises la fonctionnalité prévue pour cela dans excel, tu verrouilles ta cellule.
Ce n'est pas la peine d'essayer d'inventer autre chose qui n'aura pas la même efficacité et te créera d'autres soucis (tri, copier, etc). Un logiciel a un certain nombre de fonctionnalités autant les utiliser plutôt que d'essayer de biaiser, non ?
ma colonne K se fusionnent et puis je n'y touche plus.
En quoi la fusion va empêcher de modifier la date ?
C'est vraiment très curieux de voir que l'on essaye de détourner les fonctionnalités.
- les fusions permettent de modifier la présentation.
- le verrouillage des cellules permet d'en protéger le contenu très efficacement.
dans aucun cas je ne dois modifier les cases d'une date passée
Si tu veux interdire cette modification, utilises la fonctionnalité prévue pour cela dans excel, tu verrouilles ta cellule.
Ce n'est pas la peine d'essayer d'inventer autre chose qui n'aura pas la même efficacité et te créera d'autres soucis (tri, copier, etc). Un logiciel a un certain nombre de fonctionnalités autant les utiliser plutôt que d'essayer de biaiser, non ?
KrioxFear
Messages postés
23
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
1 avril 2017
31 mars 2017 à 08:47
31 mars 2017 à 08:47
Bonjour,
Je recommence en expliquant différemment, j'ai un tableau dont la colonne B est la date, ensuite plusieurs colonnes de données diverses et ma colonne K est la somme du profit de la journée. Petite précision, le nombre de ligne par jour varie.
D'un point de vue esthétique, j'aimerais qu'en K les doublons soient fusionnés, ainsi j'aurais une grande cellule avec le profit, c'est plus clair et ça permet de bien s'y retrouvé dans les jours.
Pour l'instant, dans ma colonne K je me suis arrangé pour avoir le profit journalier répété le nombre de fois qu'il y a de ligne du même jour avec cette formule =SI(B1<>"";SOMME.SI(B:B;B1;O:O);"") et ça fonctionne comme je le voulais. Il me semble que pour faire ce que je veux il ne reste plus qu'à fusionner les cellules dont la valeur est la même.
Maintenant, en ce qui concerne les données que je ne dois pas modifié j'ai dis ça pour contré le fait que la fusion pouvait apporter des erreurs mais en réalité ce n'est pas une interdiction, c'est seulement que normalement je ne serai pas amené à le faire. Une fois la cellule fusionnée le résultat ne changera donc normalement jamais mais ce n'est pas pour autant que je veux verrouiller les cellules d'une date passée.
On a eu du mal à se comprendre mais j'espère avoir été clair cette fois. Merci de ton aide en tout cas.
Cordialement,
Je recommence en expliquant différemment, j'ai un tableau dont la colonne B est la date, ensuite plusieurs colonnes de données diverses et ma colonne K est la somme du profit de la journée. Petite précision, le nombre de ligne par jour varie.
D'un point de vue esthétique, j'aimerais qu'en K les doublons soient fusionnés, ainsi j'aurais une grande cellule avec le profit, c'est plus clair et ça permet de bien s'y retrouvé dans les jours.
Pour l'instant, dans ma colonne K je me suis arrangé pour avoir le profit journalier répété le nombre de fois qu'il y a de ligne du même jour avec cette formule =SI(B1<>"";SOMME.SI(B:B;B1;O:O);"") et ça fonctionne comme je le voulais. Il me semble que pour faire ce que je veux il ne reste plus qu'à fusionner les cellules dont la valeur est la même.
Maintenant, en ce qui concerne les données que je ne dois pas modifié j'ai dis ça pour contré le fait que la fusion pouvait apporter des erreurs mais en réalité ce n'est pas une interdiction, c'est seulement que normalement je ne serai pas amené à le faire. Une fois la cellule fusionnée le résultat ne changera donc normalement jamais mais ce n'est pas pour autant que je veux verrouiller les cellules d'une date passée.
On a eu du mal à se comprendre mais j'espère avoir été clair cette fois. Merci de ton aide en tout cas.
Cordialement,
31 mars 2017 à 18:00
Merci ça fonctionne niquel et si je m'en sors pas par la suite ben au moins tu m'auras prévenu :D
En tout cas merci d'avoir pris le temps de m'aider.
Cordialement.