VBA: Substitute ou replace plusieurs caractères

IFFIC

XLDnaute Occasionnel
Bonsoir à tous; à ceux qui apprennent, à ceux qui enseignent.

Et meilleurs vœux à l'un et l'autre, en espérant qu'ils y trouvent leur bonheur.

Il y a tant de gens sympas ici que je leur souhaite sincèrement une bonne santé.
(Et pour le reste……….: On arrivera bien à se démerder. N'est-il pas?)

L'objet de ma question est simple:

Remplacer le '+' ou le '-' dans la 'Value' de ma 'TextBox'
si l'un ou l'autre existe….. Sinon pire un autre que '' devant.
(P.S. J' ai 91 TXB dans mon USF …Faut faire court…!)

J'ai tout tenté avec 'Replace' et 'Substitute' …..Poufff
Mon bureau est plein de cheveux du d'sus…

Merci d'avance si vous pouvez me donner un coup de main.

(Par pour la calvitie..Qu'il est con…!!! : Pour la Macro….Pfff!)

IFFIC

Fichier joint si je ne me plante pas.

Au cas où:

Private Sub CommandButton1_Click()

If TextBox1.Value > TextBox2.Value Then

TextBox3.Value = '- ' & Format((CDate(TextBox2.Value) - CDate(TextBox1.Value)), 'hh:mm')
TextBox4.Value = Application.WorksheetFunction.Substitute _
(TextBox3.Value, '-', '')

Else
TextBox3.Value = '+ ' & Format((CDate(TextBox2.Value) - CDate(TextBox1.Value)), 'hh:mm')
TextBox4.Value = Application.WorksheetFunction.Substitute _
(TextBox3.Value, '+', '')

End If

'En réalité, je préférerais supprimer de mes 'If' : 'Substitute' ci-dessus
' par un substitute global me remplaçant le plus ou le moins (Sinon autres) par ''

' -----------------------------------------------------------------------------------------

'Dans cette tentative: seul le '+' est remplacé !!! ...Dernière instruction... Of course!

' TextBox5.Value = Application.WorksheetFunction.Substitute _
(TextBox3.Value, '-', '')
' TextBox5.Value = Application.WorksheetFunction.Substitute _
(TextBox3.Value, '+', '')


End Sub


Private Sub UserForm_Initialize()
Caption = 'Il bosse trop Bill pour connaître les heures en moins !!!!... N'est-il-pas ???'
TextBox1.Value = '12:30'
TextBox2.Value = '11:25'

End Sub [file name=CHANGE_CRTS.zip size=13817]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CHANGE_CRTS.zip[/file]
 

Pièces jointes

  • CHANGE_CRTS.zip
    13.5 KB · Affichages: 58

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Iffic

deux lignes de code, cela va ?
Code:
Private Sub CommandButton1_Click()
If CDate(TextBox2) < CDate(TextBox1) Then TextBox3 = Format(CDate(TextBox2) - CDate(TextBox1), '+hh:mm') _
Else TextBox3 = Format(CDate(TextBox2) - CDate(TextBox1), '-hh:mm')
TextBox4 = Format(CDate(TextBox2) - CDate(TextBox1), 'hh:mm')
End Sub
 

Creepy

XLDnaute Accro
Bonsoir,

Iffic ton message m'a fait marrer, n'est-il pas ?

Mais du coup je suis pas sûr d'avoir bien saisi la question.

Regarde en PJ si cela te convient !

@+

Creepy [file name=CHANGE_CRTS_20060103222901.zip size=12606]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CHANGE_CRTS_20060103222901.zip[/file]
 

Pièces jointes

  • CHANGE_CRTS_20060103222901.zip
    12.3 KB · Affichages: 77

IFFIC

XLDnaute Occasionnel
Merci Yeahou; c'es un bon truc pour ne pas à avoir à se farcir les '&'.. Je note!

Merci Creepu..Pardon Creepy
(J'ai senti un sourire au dessus de ma
calvitie... Je me venge!!!.... Et toc!)

D'où le fait que je viens d'ajouter ma tronche à ma carte de membre. Faut pas abuser..Non mais!!

La boucle sur les TXB est une bonne idée.
Sans doute que si cela ne concerne que la TXB3
L4ON FAIT AU MOINS LE TOUR SUR L42VENTUALIT2 DE LA PR2SENCE DU 5m...Chochonnerie de clavier sans voyant..
Je disais donc du '+' ou du '-' qq part.

Merci à toi, je pense avoir pigé.

Bonne fin de soirée à vous.
Il y a vraiment ici des mecs au poil
(du d'sus).

IFFIC :) :)
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
re bonjour

sinon, pour tes 91 textbox, voici un exemple de code pour mettre à jour deux séries de 4 textbox
1 série de 1 à 4 et une série de 5 à 8

A+
Code:
Dim compteur As Integer
For compteur = 1 To 5 Step 4
If CDate(Me.Controls('TextBox' & compteur + 1)) < CDate(Me.Controls('TextBox' & compteur)) Then Me.Controls('TextBox' & compteur + 2) = Format(CDate(Me.Controls('TextBox' & compteur + 1)) - CDate(Me.Controls('TextBox' & compteur)), '+hh:mm') _
Else: Me.Controls('TextBox' & compteur + 2) = Format(CDate(Me.Controls('TextBox' & compteur + 1)) - CDate(Me.Controls('TextBox' & compteur)), '-hh:mm')
Me.Controls('TextBox' & compteur + 3) = Format(CDate(Me.Controls('TextBox' & compteur + 1)) - CDate(Me.Controls('TextBox' & compteur)), 'hh:mm')
Next compteur
 

IFFIC

XLDnaute Occasionnel
Bonjour Yeahou et Merci

(Diantre Balaise l''AUTIFIT' de la page!!!)

j'ai lu la fin de ta macro sur le mur de droite de mon bureau :silly:

Non seulement t'es bon mais en plus devin...
car ton exemple ressemble à s'y méprendre
à la construction de l'appli que je bidouille.

Tu ne peux pas savoir combien il va m'être utile d'utiliser 'Step' (J'avais oublié).

Je l'avais pourtant dans mes recherches de doublons dans une liste... Pfff!

Pépé a besoin qu'on lui secoue qq fois les neurones.

Merci encore, et bonne fin de journée

IFFIC
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz