Mise en loop d'une macro de fusion

loubar69

XLDnaute Nouveau
Bonjour à tous !

Alors, je suis face à un petit soucis que je ne parvient pas à résoudre...

Je vous explique, j'ai un document d'historique de conversation sms, j'ai un peu modifier le document sortit du téléphone pour lui créer trois colonnes principales (qui sont les colonnes E, F et G). J'ai mis les messages dans les cases de la colonne F (du texte donc). J'ai un autre colonne (J) dans laquelle j'ai soit la valeur "RCV" (reçu) soit la valeur "SNT". Voilà pour la situation.

Mon soucis est que je voudrais que sur une ligne où j'ai la valeur "SNT" en J, la case en F fusionne avec la case vide en E. Et que sur une ligne où j'ai la valeur "RCV" en J, la case F fusionne avec la case vide en G.

J'ai trouvé un bout de code qui me fait ça ligne par ligne (enfin une des deux conditions à la fois, mais au pire je lancerais deux macros ça ne me dérange pas...) :

(exemple pour la ligne 1)

Code:
Sub test()
Range("E1:F1").UnMerge
If [J1] = "SNT" Then
    With Range("E1:F1")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .MergeCells = True
    End With
End If
End Sub

Là ça fonctionne sur la ligne 1, pas de soucis, la case J contient "SNT" donc la case F fusionne bien avec la case E.

Par contre je voudrais que la marco se loop toute seule sur toutes les lignes du tableau sinon, elle n'a aucun intérêt pour moi... (j'ai dans les 50 000 lignes au total... >< )

J'ai déjà fait pas mal de tentatives, mais débutant avec les vba, toutes se sont soldées par des échecs... :(


En espérant que vous pourrez m'aider !


Merci par avance !



à bientôt,


loubar
 

loubar69

XLDnaute Nouveau
Re : Mise en loop d'une macro de fusion

Bonjour,

Merci pour la réponse rapide !

En fait non... L'idée étant de décaler sur la verticale les messages envoyés et ceux reçus... Pour obtenir une sorte de quinconce, et avoir une mis en page semblable à celle d'une conversation sur un téléphone.

Il est donc impératif que la règle de fusion ne soit pas la même et soit conditionnelle à J...
 

Dranreb

XLDnaute Barbatruc
Re : Mise en loop d'une macro de fusion

Oui mais, de toutes façon si on fusionne seule la cellule du coin haut gauche est gardée. Et dans ce cas je suppose donc que les texte qui doivent être fusionnée en F:G sont déjà renseignés en F et les autres déjà en E. C'est plutôt un alignement standard qui conviendrait, permettant de mordre sur la colonne suivante.
P.S. Pourtant non puisque vous centrez horizontalement. Un centrage sur plusieurs colonne devrait bel et bien convenir.
 
Dernière édition:

loubar69

XLDnaute Nouveau
Re : Mise en loop d'une macro de fusion

Et bien je pensais la même chose, mais en ayant tous les textes sur la colonne F, et les colonnes E et G vides, peut importe que je fusionne F avec E ou avec G, le texte se conserve bien.

Je vous mets un exemple en capture d'écran du résultat final :

Capture d’écran 2013-10-04 à 16.54.35.jpg

Et avant cela donnait ça :

Capture d’écran 2013-10-04 à 16.58.54.jpg

(on a ici aussi une mise en forme conditionnelle qui distingue les lignes en "SNT" de celles en "RCV")

Le but est donc que sur les lignes vertes ("RCV" donc) la case F fusionne avec la G et sur les grises, la case F fusionne avec la E.

Ce que la vba mise dans mon premier message fait sans problème, mais elle le fait ligne par ligne...


Merci pour votre temps et votre aide !
 

loubar69

XLDnaute Nouveau
Re : Mise en loop d'une macro de fusion

J'ai une solution qui pourrait aider :

J'ai fais "trier" et mis au début toutes les lignes "RCV" et après toutes celles avec "SNT"

Du coup il me faudrait "juste" un bout de code pour fusionner et centrer les cellules F avec les cellules G sur une lignes donnée et reproduire sur chaque ligne de la plage définit. Et la même chose pour la colonne F et E...

Est-ce que ça aide / simplifie la chose ?


loubar
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Mise en loop d'une macro de fusion

Bonjour.
Une solution simple serait de déplacer les contenus de cellules de F vers E dans la partie qui doit être centrée sur ces deux colonnes.
Il ne faut jamais fusionner des cellules.
Sauf si on ne peut vraiment pas faire autrement.
 

ROGER2327

XLDnaute Barbatruc
Re : Mise en loop d'une macro de fusion

Bonsoir à tous.


Un essai d'un autre genre, sans fusion, sans centrage sur plusieurs colonnes ni mise en forme conditionnelle.​


ROGER2327
#6880


Mercredi 4 Haha 141 (Sainte Berthe de Courrière, égérie - fête Suprême Quarte)
18 Vendémiaire An CCXXII, 0,0257h - sarrasin
2013-W41-3T00:03:42Z
 

Pièces jointes

  • XLD_211719_mise en forme.xlsm
    19.8 KB · Affichages: 31

loubar69

XLDnaute Nouveau
Re : Mise en loop d'une macro de fusion

Après étude de votre code et du résultat sur mon fichier, en fait ça ne rends pas vraiment comme prévu...
En effet, de mon coté j'ai des pavés de texte, genre 6 à 8 lignes facilement, du coup, on voit à peine l'effet de l’alignement à gauche ou à droite... :(

Je ne sais plus trop quoi faire...
Mon code de début de discussion ne peut vraiment pas se répliquer de ligne en ligne ?
Je sais que la fusion n'es pas l'idéal, mais là je ne vois pas d'autre solution... Et je pense que je vais devoir le faire à la main si il n'y a pas de solution... :confused:
 

Dranreb

XLDnaute Barbatruc
Re : Mise en loop d'une macro de fusion

Bonjour.
Mon code de début de discussion ne peut vraiment pas se répliquer de ligne en ligne ?
Bien sûr que si puisque ROGER2327 (que je salue) s'est fendu d'un nouveau classeur, ce que personnellement je n'ai jamais envie de faire. Vous n'avez qu'a reprendre une partie de son code.
 

ROGER2327

XLDnaute Barbatruc
Re : Mise en loop d'une macro de fusion

Re...

Après étude de votre code et du résultat sur mon fichier, en fait ça ne rends pas vraiment comme prévu...
En effet, de mon coté j'ai des pavés de texte, genre 6 à 8 lignes facilement, du coup, on voit à peine l'effet de l’alignement à gauche ou à droite... :(
(...)
Ce n'est pas ce que montrent vos captures d'écran.
Difficile de résoudre un problème quand c'est un autre qui est posé !

Bien que, comme Dranreb que je salue au passage, je considère que la fusion de cellules est une abomination dans la plupart des cas, voici une dernière tentative.​



ROGER2327
#6881


Mercredi 4 Haha 141 (Sainte Berthe de Courrière, égérie - fête Suprême Quarte)
18 Vendémiaire An CCXXII, 5,3648h - sarrasin
2013-W41-3T12:52:32Z
 

Pièces jointes

  • XLD_211719_mise en forme(2).xlsm
    23.8 KB · Affichages: 35

loubar69

XLDnaute Nouveau
Re : Mise en loop d'une macro de fusion

Je ne comprends pas...

Je suis désolé, je suis débutant avec les vba et là je ne saisis pas ce que je dois faire et garder ou remplacer dans ce code...


Bref, tant pis, merci encore et désolé de vous avoir fait perde de votre temps !



Bonne soirée !


loubar69
 

Discussions similaires