Scinder une cellule en deux ... complications

Résolu
anwi -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. keennan Messages postés 144 Statut Membre 22
     
    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
  2. geegee
     
    bonjour

    pourquoi ne pas faire du vba une cellule = somme de la premier une cellule ou il y a / et la troisieme
    1
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  4. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    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
    1. Anwi
       
      Absolument génial !!

      Merci beaucoup à toi et à vous tous pour vos réponses !
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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