Microsoft 365 Problème d'espace dans la cellule excel

tchaume

XLDnaute Nouveau
Bonjour,
Je n'arrive pas à enlever l'espace devant le chiffre dans la cellule. Ce qui fait que les chiffres restent à gauche dans la cellule.
Voici un exemple de mon fichier (faites un copier coller dans excel)
Merci d'avance pour votre aide
N° CAISolutions ?
400020064428
400020064435
400020064445
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @tchaume, bienvenue sur XLD :)

Quand on colle vos données dans Excel, tout se passe bien : pas d'espace devant le chiffre. C'est donc si difficile de joindre un extrait du fichier en question ? ;)

Sinon (à l'aveugle) :
  • sélectionner la plage en question
  • menu Données / Convertir
  • largeur fixe puis suivant
  • insérer un séparateur après le premier caractère (l'espace) puis suivant
  • sélectionner la première colonne et cliquer sur l'option colonne non distribuée
  • cliquer sur Terminé
 
Dernière édition:

WTF

XLDnaute Impliqué
Bonjour,
Je n'arrive pas à enlever l'espace devant le chiffre dans la cellule. Ce qui fait que les chiffres restent à gauche dans la cellule.
Voici un exemple de mon fichier (faites un copier coller dans excel)
Merci d'avance pour votre aide
N° CAISolutions ?
400020064428
400020064435
400020064445
Bonjour Tchaume,
Tu peux essayer les manip suivantes :

1. Tu vas dans une cellule qui contient un espace, tu le copie (Ctrl C), tu sélectionnes ta colonne N°CAI et tu fais Ctrl H pour Remplacer. Dans le 1er champ tu colles ton espace et tu laisses le 2nd vide. Tu demandes donc de remplacer l'espace par rien

2. Si cela ne fonctionne pas, une 2ème idée. Dans une colonne à coté tu fais =N°CAIx1
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'arrive pas à enlever l'espace devant le chiffre dans la cellule. Ce qui fait que les chiffres restent à gauche dans la cellule.
Non ce n'est pas lié. Ce qui fait qu'elle reste à gauche en l'absence d'un alignement imposé de la cellule c'est qu'il s'agit d'un texte et non d'un nombre.
Par ailleurs ce n'est pas un espace qu'il y a devant, mais un espace insécable de code 160
En B7 cette formule, parmi d'autres possibles, l'enlève :
Code:
=SUBSTITUE(A7;CAR(160);"")
Mais la valeur de la cellule n'en devient pas un nombre pour autant.
Comme ça, si, toujours en B7 :
Code:
=SUBSTITUE(A7;CAR(160);"")*1
Mais dans ce cas il faut probablement changer le format de nombre de la cellule pour qu'elle l'affiche comme cela vous conviendrait.
 

patricktoulon

XLDnaute Barbatruc
bonjour à tous
une fonction qui arrange tout le monde
cette fonction applique un trim , trimleft , trimright ,ou un regular trim en un coup sur une plage toute entière
VB:
Function ChangeAllCellpropertiesInRange(ByRef RnG As Range, prop As String)
    Dim R As Variant, Addr
    With RnG
        Addr = "'" & .Parent.Name & "'!" & .Address
        Select Case UCase(prop)
            'formule non matricielles
        Case "LOWER", "UPPER", "PROPER", "APPTRIM":
            prop = Replace(UCase(prop), "APPTRIM", "TRIM")
            R = Evaluate("IF(ISTEXT(" & Addr & ")," & UCase(prop) & "(" & Addr & "),REPT(" & Addr & ",1))")

            'formules matricielle
        Case "LTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")

            'ancienne formule RTRIM qui fonctionne sur toute versions excel 
            'Case "RTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),LEFT(" & Addr & ",FIND(""^^"",SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""^^"",LEN(" & Addr & ")-LEN(SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""""))))),REPT(" & .Address & ",1))")
            'nouvelle formule
        Case "RTRIM": R = Evaluate("IF(ISTEXT(" & Addr & "),LEFT(" & Addr & ",FIND(""§"",SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""§"",LEN(" & Addr & ")-LEN(SUBSTITUTE(" & Addr & ",RIGHT(TRIM(" & Addr & "),1),""""))),1))," & Addr & ")")

        Case "TRIM": .Value = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",FIND(MID(TRIM(" & Addr & "),1,2)," & Addr & ",1),LEN(" & Addr & ")),REPT(" & Addr & ",1))")
            R = Evaluate("IF(ISTEXT(" & Addr & "),MID(" & Addr & ",1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100))," & Addr & ",1)+LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(" & Addr & "), "" "", REPT("" "", 100)), 100)))-1),REPT(" & Addr & ",1))")

        End Select
    End With

    ChangeAllCellpropertiesInRange = R
End Function


la sub pour la tester
VB:
Sub test()
    Dim DL, RnG As Range
    With Sheets(1)
        DL = .Cells(Rows.Count, 3).End(xlUp).Row
        Set RnG = .Range("C2:C" & DL)
        'RnG.Parent.Activate
        RnG.Value = ChangeAllCellpropertiesInRange(RnG, "LTRIM")    '
    End With
End Sub

pour l'argument
  1. Ltrim pour faire un trimleft
  2. Rtrim pour faire un trimrigth
  3. APPTRIM pour faire un un regular trim
  4. lower pour mettre tout en minuscule
  5. upper pour mettre tout en majuscule
  6. PROPER pour mettre en nom propre
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T