Interligne Excel dans une cellule unique [fermé]


-1

Soi-disant, ce sont les données d'une seule cellule A1:

Score     Remarks
1-10     25
  25-38      jk
 100-150   merry

J'ai besoin d'un raccourci où je peux Aligner de manière à ce que l'espacement entre les données soit uniforme.

Score     Remarks
1-10      25
25-38     jk
100-150   merry 

J'ai besoin de ça comme ça. REMARQUE: Ne suggérez pas d'utiliser des barres d'espace entre les deux. Que se passe-t-il si les données sont énormes?


1
Vous devrez diviser le retour à la ligne puis couper pour supprimer les espaces supplémentaires, puis le séparer et compter le nombre dans le premier puis concanténer les deux arrières avec un nombre d'espaces qui alignera la deuxième partie à l'aide d'un certain nombre d'espaces moins la longueur de la première partie. Cela prendra vba et ce n'est pas un code pour mon site. De plus, vous devrez utiliser une police monospace ou vous ne pourrez jamais le faire fonctionner. Il serait préférable de le scinder en nouvelles cellules. Il serait plus facile de s'aligner.
Scott Craner

1
Si la cellule contient des données combinées, vous ne pouvez pas les calculer ou les utiliser facilement.
yass

1
Bienvenue sur le site. Ceci est un site Q & A, pas un forum de service. S'il vous plaît modifier vous postez pour inclure ce que vous avez déjà essayé et quels en ont été les résultats. Nous allons essayer d'aider à partir de là.
CharlieRB

Réponses:


2

Essayez la fonction définie par l'utilisateur suivante:

Public Function PrettyOutput(sIN As String) As String
    Dim hr As String, i As Long, maxL As Long
    Dim U As Long

    hr = Chr(10)
    If InStr(1, sIN, hr) = 0 Then
        PrettyOutput = sIN
        Exit Function
    End If

    ary = Split(sIN, hr)
    U = UBound(ary)
    For i = 0 To U
        ary(i) = Application.WorksheetFunction.Trim(ary(i))
    Next i

    maxL = 0
    For i = 0 To U
        bry = Split(ary(i), " ")
        If Len(bry(0)) > maxL Then maxL = Len(bry(0))
    Next i

    For i = 0 To U
        bry = Split(ary(i), " ")
        PrettyOutput = PrettyOutput & bry(0) & Application.WorksheetFunction.Rept(" ", maxL - Len(bry(0))) & " " & bry(1) & hr
    Next i
    PrettyOutput = Mid(PrettyOutput, 1, Len(PrettyOutput) - 1)
End Function

Les fonctions définies par l'utilisateur (UDF) sont très faciles à installer et à utiliser:

  1. ALT-F11 ouvre la fenêtre VBE
  2. ALT-I ALT-M ouvre un nouveau module
  3. collez le contenu et fermez la fenêtre VBE

Si vous enregistrez le classeur, la fonction utilisateur est enregistrée avec celui-ci. Si vous utilisez une version d'Excel plus tard que 2003, vous devez enregistrer le fichier en tant que .xlsm plutôt que .xlsx

Pour supprimer le fichier UDF:

  1. afficher la fenêtre VBE comme ci-dessus
  2. effacer le code
  3. ferme la fenêtre VBE

Pour utiliser le fichier UDF d'Excel:

= ma fonction (A1)

Pour en savoir plus sur les macros en général, voir:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

et

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

et pour plus de détails sur les FDU, voir:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Les macros doivent être activées pour que cela fonctionne!

Donc, avec des données dans A1 , dans B1 entrer:

=PrettyOutput(A1)

et format B1 avec une police comme Courrier :

enter image description here


2
Oh wow, gentil! ... juste un commentaire, je sais que OP a tout demandé dans une seule cellule, voir tout cela dans une seule cellule me fait frémir, haha. À l'avenir (@Hussain), je suggère de regarder dans pour rendre ces données disponibles dans des cellules séparées. Cela facilitera grandement la manipulation des données et constitue en fait un "meilleur" moyen d'utiliser Excel.
BruceWayne

@BruceWayne Je suis d'accord avec vous ... il est regrettable que cette tâche d'alignement ne puisse être accomplie avec Languette personnages.
Gary's Student

0

Données - & gt; Le texte en colonnes correspond à ce que vous souhaitez. N'essayez pas de tout garder dans une cellule, divisez-le en plusieurs cellules.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.