XL 2013 Résolu ! [VBA] Imbriquer la fonction SUBSTITUE - Problème de syntaxe

ralph45

XLDnaute Impliqué
Bonjour la communauté XLD,

Je viens vers vous car j'ai un petit souci de syntaxe, certainement...

Suite à saisie dans un UserForm, je veux voir apparaître dans celui-ci 2 propositions de restitution des données tapées (APERCU_1 et APERCU_2).

Vous verrez dans le code ci-après que je laisse la saisie plus ou moins libre pour rectifier dans les aperçus certaines choses (d'où le Trim, UCase et le Sansaccent). Jusque-là tout va bien...

Là où cela ne va plus, c'est lorsque j'essaye d'imbriquer la notion de SUBSTITUE (SUBSTITUTE) pour la valeur de V_NOM (En gras, ce qui est à modifier. En rouge, c'est ce qui coince). En clair, je veux remplacer les espaces intermédiaires par des tirets... C'est dimanche matin, j'ai pas les yeux en face des trous, car je bloque dessus depuis un p'tit moment, malgré 3 cafés... :eek:

Private Sub V_NOM_Change()
If V_ARTICLE.Value = "-" Then
APERCU_1.Value = (Trim(Sansaccent(UCase(V_NOM.Value)))) & " (" & V_TYPE.Value & ")"
SUBSTITUTE(V_NOM.Value, "" "" , ""-"")
APERCU_2.Value = V_TYPE.Value & " " & Trim(Sansaccent(UCase(V_NOM.Value)))
Else
APERCU_1.Value = Trim(Sansaccent(UCase(V_NOM.Value))) & " (" & V_TYPE.Value & " " & V_ARTICLE.Value & ")"
APERCU_2.Value = V_TYPE.Value & " " & V_ARTICLE.Value & " " & Trim(Sansaccent(UCase(V_NOM.Value)))
End If
End Sub


A+ !!
 
Dernière édition:

ralph45

XLDnaute Impliqué
Re : [VBA] Imbriquer la fonction SUBSTITUE - Problème de syntaxe

Bonjour pierrejean, Pierrot93,

Merci pour vos réponses, je m'en vais les essayer de suite !! ;)

@Pierrot93, la fonction TRIM est effectivement bien présente mais celle-ci ne supprime que les espaces inutiles (2 à n espaces) ou les espaces inutiles avant ou après une chaine de caractères.

@pierrejean, avec V_NOM.Value=Replace(V_NOM.Value," ","-")
Pas besoin de mettre les doubles quotes, style V_NOM.Value=Replace(V_NOM.Value,"" "",""-"") ?

Je teste et vous tiens au courant...
 

ralph45

XLDnaute Impliqué
Re,

Alors, cela fonctionne à merveille ! Merci à vous deux !!:D:D
Pour info, le code qui fonctionne :

PHP:
Private Sub V_NOM_Change()
    If V_ARTICLE.Value = "-" Then
        APERCU_1.Value = Trim(Sansaccent(UCase(Replace(V_NOM.Value, " ", "-")))) & " (" & V_TYPE.Value & ")"
        APERCU_2.Value = V_TYPE.Value & " " & Trim(Sansaccent(UCase(V_NOM.Value)))
    Else
        APERCU_1.Value = Trim(Sansaccent(UCase(Replace(V_NOM.Value, " ", "-")))) & " (" & V_TYPE.Value & " " & V_ARTICLE.Value & ")"
        APERCU_2.Value = V_TYPE.Value & " " & V_ARTICLE.Value & " " & Trim(Sansaccent(UCase(V_NOM.Value)))
    End If
End Sub

A+ !!
 
Dernière édition:

Statistiques des forums

Discussions
312 094
Messages
2 085 237
Membres
102 829
dernier inscrit
cdupire