Microsoft 365 Supprimer des espaces insécables dans plusieurs colonnes

moanin

XLDnaute Impliqué
Bonsoir à tous ;)



Comment supprimer des espaces insécables de mots qui sont dans plusieurs colonnes ?

Ex :

=SUPPRESPACE(G2;I2)

J'ai une erreur : "trop d'arguments".

Merci.
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
Le questionneur a demandé d'ajouter la fonction à des formules que je lui ai tissées dans une autre discussion.
=TRIER(UNIQUE(SUPPRESPACE(DANSCOL(CHOISIRCOLS(E2:Y275;SEQUENCE(10)*2+1);1;1))))
=LET(Plg;E2:Y275;Reals;DANSCOL(CHOISIRCOLS(Plg;SEQUENCE(10)*2+1);;1);Films;DANSCOL(CHOISIRCOLS(Plg;SEQUENCE(10)*2);;1);ChefOp;DANSCOL(SI(E1:N1=E1:N1;E2:E275;"");;1);FILTRE(ASSEMB.H(Films;ChefOp);(SUPPRESPACE(Reals)=$AE$1)))
 

patricktoulon

XLDnaute Barbatruc
re
@TooFatBoy: ouais si tu veux
tiens j'essaie avec l'espace normal
ben change d'excel alors 🤣
on voit bien que je valide en matriciel non ?

demo.gif
 

patricktoulon

XLDnaute Barbatruc
re
allez juste pour faire le kake
une petite fonction perso
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
            '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

demo.gif
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
sinon j'ai sa petite soeur aussi qui fonctionne en matriciel
Code:
Function TrimLeftAllCellsInRange(ByRef RnG As Range)
'supprime les espace devant le premier caracteres equivalent de "Ltrim" in one shoot
    With RnG
    TrimLeftAllCellsInRange = Evaluate("IF(ISTEXT(" & .Address & "),MID(" & .Address & ",FIND(MID(TRIM(" & .Address & "),1,2)," & .Address & ",1),LEN(" & .Address & ")),REPT(" & .Address & ",1))")
End With
End Function
demo.gif


puré c'est vieux ces fonctions ca rajeuni pas 🤣
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG