VBA : fonction Replace, à partir d'une position donnée.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Besnard68

XLDnaute Occasionnel
Bonsoir le Forum,


J'ai un cas à vous soumettre ; J'ai beau tourner le problème dans tous les sens, mais rien n'y fait.

Par une procédure Private Sub, je souhaite supprimer tous les espaces non significatifs qui auraient été saisis avant et après, dans une chaîne de caractères donnée à l'intérieur d'un TextBox ( exemple avec " 2008 T " --> soit 3 espaces avant et 3 espaces après ).

J'ai écris la Private Sub suivante :


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim n As Integer

If TextBox1.Value <> "" Then

boucle1:
'Suppression des caractères vides au début du code
If Left(TextBox1.Value, 1) = " " Then TextBox1.Value = Replace(TextBox1.Value, " ", "", 1, 1) : GoTo boucle1​
boucle2:
'Suppression des caractères vides à la fin du code
If Right(TextBox1.Value, 1) = " " Then n = Len(TxtBx_Code_Période_mod.Value) : TxtBx_Code_Période_mod.Value = Replace(TextBox1.Value, " ", "", n, 1) : GoTo boucle2​
End If

End Sub



Si la suppression des espaces du début de la chaîne ne pose aucun problème (cf boucle1: ) , celle des espaces en fin de chaîne ne fonctionne pas du tout (cf boucle2) et même me remplace intégralement la chaîne (la Value du TextBox1 devient "" ).

Une âme charitable verrait-elle d'où vient le problème ?

Merci d'avance pour votre aide.
 
Re : VBA : fonction Replace, à partir d'une position donnée.

Bonsoir BOISGONTIER,

Fabuleux !!! Je te remercie mille fois.

Une fonction simple et concise que je ne connaissais pas et qui me réduis au minimum vital ma procédure.

Une petite précision toutefois : les doubles espaces à l'intérieur d'une chaîne ne sont pas corrigés (et c'est tant mieux car ils pourraient être délibérément mis).

Merci encore et bonne soirée à toi.
 
Re : VBA : fonction Replace, à partir d'une position donnée.

Mea Culpa BOISGONTIER,

Mes plus plates excuses, car je n'avais pas remarqué le terme 'Application'.

En effet, tu as entièrement raison, les double espaces à l'intérieur d'une chaîne sont bien corrigés.

Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
3
Affichages
298
Retour