Note: The other languages of the website are Google-translated. Back to English
English English

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. Essai gratuit complet de 30 jours!
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 pour Excel - Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune carte de crédit requise! Essai gratuit 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 pour Excel - Comprend plus de 300 outils pratiques pour Excel. Essai gratuit complet de 30 jours, aucune 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:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement 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!
bas de cabine
Commentaires (9)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
j'ai besoin d'aide dans excel je veux trouver des majuscules dans une cellule. par exemple : Sagar Paul MBA 16:04 je veux que MBA soit mis en évidence
Ce commentaire a été minimisé par le modérateur sur le site
J'espère que vous pourrez le voir et lui donner un essai. 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 ).Texte Si Asc(xChar) > 64 Et Asc(xChar) < 91 Alors xCell.Characters(i, 1).Font.Color = vbRed End If Next Next End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, votre code fonctionne à merveille. Savez-vous comment adapter le code 20140723 pour travailler sur plusieurs feuilles ? Je voudrais ajouter des espaces entre les majuscules dans tout le classeur. Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour

Tout d'abord merci beaucoup pour votre exemple de code et les explications. Cela fonctionne très bien pour mon cas.

J'ai juste 1 problème, certaines des chaînes contiennent des mots comme URL, qui ne doivent pas être séparés.
Voyez-vous un moyen d'exclure par exemple "URL" de l'ajout d'espaces ?

Ce serait très bien si vous pouviez aider. J'ai déjà essayé un moment, mais je ne sais pas comment résoudre ce problème ..


Meilleures salutations
luca
Ce commentaire a été minimisé par le modérateur sur le site
Hi,
Merci pour votre commentaire et vos conseils. J'ai envoyé votre suggestion à l'équipe du projet Kutools, je suis sûr qu'ils l'amélioreront bientôt.
Ce commentaire a été minimisé par le modérateur sur le site
Trouvé une solution?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, je veux vous demander si vous avez trouvé une solution pour votre cas, si vous avez trouvé une solution, veuillez me la fournir
Ce commentaire a été minimisé par le modérateur sur le site
Cette fonction gère deux problèmes que la solution donnée ne couvre pas :
1. texte non anglais (avec signes diacritiques)
2. majuscules successives qui ne doivent pas être suivies d'espaces

` Fonction privée AddSpaces(sText As String)As String
' Insère un espace juste avant une lettre majuscule, sauf lorsque des caractères successifs sont chacun en majuscule.
' Dernière mise à jour : 2022-07-04
'
Dim sRet As String, i As Integer, sChar As String, bPrevWasUCase As Boolean

sRet = Gauche(sTexte, 1)
Pour i = 2 Vers Len(sTexte)
sChar = Milieu(sTexte, je, 1)
Si sChar = UCase(sChar) et non bPrevWasUCase alors
sRet = sRet & " " & sChar
bPrevWasUCase = Vrai
autre
sRet = sRet & sChar
bPrevWasUCase = Faux
Si fin
Suivant i

AddSpaces= sRet
Fonction de fin`
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour ami,

Merci pour votre partage. J'ai essayé votre code VBA, mais cela ne fonctionne pas. Notre code VBA peut gérer le texte non anglais. J'ai testé le texte français et les espaces sont insérés avec succès avant les majuscules.

Sincèrement,
Mandy
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés