Scinder une cellule en deux ... complications [Résolu/Fermé]

Signaler
-
Mike-31
Messages postés
17088
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 mars 2020
-
Bonjour,

Je souhaiterais pouvoir scinder une cellule en deux ... mais pas de la manière la plus facile !

En fait, en cellule a, j'ai par exemple "Oki" et en cellule b j'ai "Doki", je souhaiterais pouvoir les rassembler dans une seule cellule mais séparée par un trait diagonale, avec en haut à gauche "oki" et en bas à droite "doki" ..

Merci à ceux qui auront compris ce que je veux dire, et qui sauront assez sympa pour m'aider ^^

5 réponses

Messages postés
129
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
15 octobre 2014
20
Bonjour,

j'ai bien compris ce que tu veux faire, mais je pense pas que ce soit possible sur Excel. En tout cas pas avec une fusion directement.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 72521 internautes nous ont dit merci ce mois-ci

bonjour

pourquoi ne pas faire du vba une cellule = somme de la premier une cellule ou il y a / et la troisieme
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 72521 internautes nous ont dit merci ce mois-ci

Messages postés
17088
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 mars 2020
3 911
Salut,

Les intervenants répondent en fonction de leurs savoir ou de ce qu'ils ont compris, je ne comprends pas l'appréciation négative à Geegee, qui d'après ce que je comprends la solution est de passer par le VBA pour obtenir ce genre d'affichage exemple %
ou on se contente d'un affichage sur la même ligne avec une simple formule
=A1&"/"&B1
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 72521 internautes nous ont dit merci ce mois-ci

Messages postés
1938
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
16 août 2019
781
Bonjour à tous,

Une proposition qui reprend la concaténation et un peu de VBA.

Le principe est de mettre tes formules de concaténation comme indiqué par Mike-31 =A1&"/"&B1.
Ensuite tu sélectionnes toutes les cellules où tu as tes concaténations et tu lances la macro suivante :
Sub Concat_PourCent()
'A partir d'une sélection de cellules contenant une formule de concaténation de 2 chaînes de caractères séparées par un "/"
'mettre en forme la 1ère chaîne en exposant taille 14 et la 2nde chaîne en indice taille 14.
'la formule disparait et est remplacée par la chaîne mise en forme
Set MaSelection = Selection
For Each Varea In MaSelection.Areas
    For Each Vcell In Varea.Cells
        Vcell.FormulaR1C1 = Vcell.Value2
        With Vcell.Characters(Start:=1, Length:=(InStr(Vcell.Value2, "/") - 1)).Font
            .Size = 14
            .Superscript = True
            .Subscript = False
        End With
        With Vcell.Characters(Start:=(InStr(Vcell.Value2, "/") + 1), Length:=(Len(Vcell.Value2) - InStr(Vcell.Value2, "/"))).Font
            .Size = 14
            .Superscript = False
            .Subscript = True
        End With
    Next
Next
End Sub
Cordialement
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 72521 internautes nous ont dit merci ce mois-ci

Absolument génial !!

Merci beaucoup à toi et à vous tous pour vos réponses !
Messages postés
17088
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 mars 2020
3 911
Re,

Si on cherche le VBA, il suffit de compléter le code pour concatener et faire un balayage d'une plage.
exemple des valeurs sont en A et B, ce code détectera automatiquement la plage de A2 à A dernière cellule renseignée, concaténera la colonne A et B et formatera les cellules en C

Sub test()
Dim r As Range 'plage à tester
Dim c As Range 'Cellule du range source
Set r = Range([C2], [A50].End(xlUp).Offset(0, 2)) 'détermine la plage à traiter
Application.ScreenUpdating = False
For Each c In r.Offset(0, -2)
c.Offset(0, 2).Clear 'nettoie précédent format de la plage à traiter
c.Offset(0, 2).Value = c & "/" & c.Offset(0, 1) 'Concatenne colonne A et B
With c.Offset(0, 2).Characters(Start:=1, Length:=(InStr(c.Offset(0, 2).Value, "/") - 1)).Font
.Size = 16
.Superscript = True
End With
With c.Offset(0, 2).Characters(Start:=(InStr(c.Offset(0, 2).Value, "/") + 1), Length:=(Len(c.Offset(0, 2).Value) - InStr(c.Offset(0, 2).Value, "/"))).Font
.Size = 16
.Subscript = True
End With
Next
Application.ScreenUpdating = True
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.