Scinder une cellule en deux ... complications

Résolu/Fermé
anwi - 28 déc. 2012 à 12:00
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 28 déc. 2012 à 22:30
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 ^^

A voir également:

5 réponses

keennan Messages postés 128 Date d'inscription dimanche 17 juillet 2011 Statut Membre Dernière intervention 15 octobre 2014 22
28 déc. 2012 à 12:04
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
bonjour

pourquoi ne pas faire du vba une cellule = somme de la premier une cellule ou il y a / et la troisieme
1
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 28/12/2012 à 13:52
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
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
28 déc. 2012 à 16:36
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
Absolument génial !!

Merci beaucoup à toi et à vous tous pour vos réponses !
0

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

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 28/12/2012 à 22:58
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.
0