Passer au contenu principal

Comment insérer des espaces avant les majuscules dans Excel?

Supposons que vous ayez une liste de chaînes de texte dont tous les espaces entre les mots sont supprimés accidentellement, comme ceci: InsérerBlankRowsB BetweenData, et maintenant vous voulez ajouter les espaces avant chaque lettre avec des lettres majuscules pour séparer les mots comme Insérer des lignes vides entre les données. Comment pouvez-vous ajouter rapidement des espaces devant les majuscules au lieu de taper des espaces un par un dans Excel?


Insérer des espaces avant les majuscules avec la fonction définie par l'utilisateur

Malheureusement, il n'existe aucun moyen direct pour vous d'ajouter des espaces avant les lettres majuscules dans Excel, mais vous pouvez créer une fonction définie par l'utilisateur pour résoudre cette tâche.

1. Activez votre feuille de calcul qui contient les chaînes de texte auxquelles vous souhaitez ajouter des espaces.

2. Maintenez le ALT + F11 clés pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.

3Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: insérer des espaces avant les majuscules

Function AddSpaces(pValue As String) As String
'Update 20140723
Dim xOut As String
xOut = VBA.Left(pValue, 1)
For i = 2 To VBA.Len(pValue)
   xAsc = VBA.Asc(VBA.Mid(pValue, i, 1))
   If xAsc >= 65 And xAsc <= 90 Then
      xOut = xOut & " " & VBA.Mid(pValue, i, 1)
   Else
      xOut = xOut & VBA.Mid(pValue, i, 1)
   End If
Next
AddSpaces = xOut
End Function

4. Ensuite, enregistrez et fermez ce code, revenez à la feuille de calcul et entrez cette formule = ajouter des espaces (A1) dans une cellule vide en plus de vos données, voir capture d'écran:
doc-ajouter-espaces-avant-majuscule-1

5. Et puis faites glisser la poignée de remplissage sur la plage que vous souhaitez contenir cette formule, vous obtiendrez les espaces sont insérés avant chaque lettre majuscule.
doc-ajouter-espaces-avant-majuscule-1

Supprimez facilement les espaces de début / de fin / supplémentaires dans les cellules

Kutools pour Excel Supprimer des espaces L'utilitaire permet aux utilisateurs d'Excel de supprimer facilement tous les espaces de début, les espaces de fin, les espaces supplémentaires ou tous les espaces des cellules sélectionnées rapidement.


annonce supprimer l'espace 1

Insérer des espaces avant les majuscules avec le code VBA

Voici un autre code VBA qui peut vous rendre service, procédez comme suit:

1. Maintenez le ALT + F11 clés pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: insérer des espaces avant les majuscules

Sub AddSpacesRange()
'Update 20140723
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For Each Rng In WorkRng
    xValue = Rng.Value
    xOut = VBA.Left(xValue, 1)
    For i = 2 To VBA.Len(xValue)
       xAsc = VBA.Asc(VBA.Mid(xValue, i, 1))
       If xAsc >= 65 And xAsc <= 90 Then
          xOut = xOut & " " & VBA.Mid(xValue, i, 1)
       Else
          xOut = xOut & VBA.Mid(xValue, i, 1)
       End If
    Next
    Rng.Value = xOut
Next
Application.ScreenUpdating = True
End Sub

3. Puis appuyez F5 clé pour exécuter ce code, une boîte de dialogue apparaîtra pour vous permettre de sélectionner une plage de données que vous souhaitez utiliser.
doc-ajouter-espaces-avant-majuscule-1

4. Et puis cliquez OK pour fermer cette boîte de dialogue, les espaces ont été insérés immédiatement avant les majuscules, voir capture d'écran:
doc-ajouter-espaces-avant-majuscule-1


Insérez un espace avant chaque majuscule avec Kutools for Excel

Kutools pour Excel Ajouter du texte L'utilitaire peut vous aider à contourner les macros VBA et à insérer facilement un espace avant chaque majuscule dans Excel.

Kutools for Excel - Emballé avec plus de 300 outils essentiels pour Excel. Profitez d'un essai GRATUIT complet de 30 jours sans carte de crédit requise ! Télécharger maintenant!

1. Sélectionnez la plage dans laquelle vous allez insérer un espace avant les majuscules et cliquez sur le bouton Kutools > Texte > Ajouter du texte. Voir la capture d'écran:

2. Dans la boîte de dialogue d'ouverture d'ajout de texte, tapez un espace dans le Texte case, cochez la case Ajouter uniquement à l'option et sélectionnez La 1ère lettre est en majuscule du Ajouter seulement à la liste déroulante.

3. Clique le Ok pour insérer un espace avant toutes les lettres majuscules, comme illustré ci-dessous:
doc ajouter des espaces avant 7 majuscules

Kutools for Excel - Boostez Excel avec plus de 300 outils essentiels. Profitez d'un essai GRATUIT complet de 30 jours sans carte de crédit requise ! Achetez-le Maintenant

Notes: Cette méthode ajoutera également un espace au début des cellules si la première lettre est en majuscule. Vous pouvez postuler Kutools > Texte > Supprimer des espaces pour supprimer tous les espaces de début des cellules sélectionnées.


Article connexe:

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This function handles two problems that the given solution doesn't cover:
1. non-English text (with diacritical marks)
2. successive capitals that should not have spaces after them

` Private Function AddSpaces(sText As String)As String
' Inserts a space immediately before a capital letter, except when successive characters are each capitalized.
' Last Updated: 2022-07-04
'
Dim sRet As String, i As Integer, sChar As String, bPrevWasUCase As Boolean

sRet = Left(sText, 1)
For i = 2 To Len(sText)
sChar = Mid(sText, i, 1)
If sChar = UCase(sChar) And Not bPrevWasUCase Then
sRet = sRet & " " & sChar
bPrevWasUCase = True
Else
sRet = sRet & sChar
bPrevWasUCase = False
End If
Next i

AddSpaces= sRet
End Function`
This comment was minimized by the moderator on the site
Hello friend,

Thanks for your share. I tried your VBA code, but it doesn't work. Our VBA code can handle the non-english text. I have test the french text and spaces are successfully inserted before the capital letters.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hello

First thanks a lot for your code example and the explanations. It works very well for my case.

I just have 1 Problem, some of the Strings contain words like URL, which should not be seperated.
Do you see a way to except for example "URL" from adding spaces?

Would be very nice if you can help. I tried already a while, but i dont know how to solve this..


Best regards
luca
This comment was minimized by the moderator on the site
hi wanna ask you if you found solution for you case, if you found solution please provide me with that
This comment was minimized by the moderator on the site
Hi,
Thanks for your comment and advice. I have sent your suggestion to the Kutools project team, I’m sure they’ll improve it soon.
This comment was minimized by the moderator on the site
Found a solution?
This comment was minimized by the moderator on the site
Hi there, your code works fantastic. Do you know how to adapt code 20140723 to work on multiple sheets? I would like to add spaces between capital letters throughout the entire workbook. Thanks!
This comment was minimized by the moderator on the site
i need a help in excel i want to find Uppercase in a cell. for example: Sagar Paul MBA 16:04 i want MBA to be highlighted
This comment was minimized by the moderator on the site
I hope you can see it and give it a trial. Sub Test() Dim Rg As Range, xCell As Range Dim i As Long Dim xChar As String Set Rg = Application.Selection For Each xCell In Rg For i = 1 To xCell.Characters.Count xChar = xCell.Characters(i, 1).Text If Asc(xChar) > 64 And Asc(xChar) < 91 Then xCell.Characters(i, 1).Font.Color = vbRed End If Next Next End Sub
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations