msg si format de textbox et pas bonne

plouff

XLDnaute Junior
Re-Bonjour pour ce qui mon aidé pour mon dernier post et Bonjour a ce qui suivrons cette discution.

Je souhaiterai mettre une condition lorsque je rempli mon userform de saisi notament pour la saisi du numero ordre ou il ne faudra pas que je me trompe.

J'ai trouvé beaucoup de code que j'ai tenté d'adapter au mien mais je n'arrive pas a trouver la solution.
Je voudrai lorsque que clique sur un bouton pour fermer ma feuille de saisie qu'il verifie que le numero d'ordre sois bien saisi. Dans le cas ou il ne l'ai pas il faudrai un message pour m'avertir et qu'il ne quitte pas la feuille de saisi et qu'il n'incremente pas non plus.
J'utilise ce code:

PHP:
Private Sub Quitte_Click()


ligne = Sheets("Actions").[B600].End(xlUp).Row + 1
 
Sheets("Actions").Cells(ligne, 2) = Date1.Value
Sheets("Actions").Cells(ligne, 3) = Heure1.Value
Sheets("Actions").Cells(ligne, 4) = NumOrdre.Value
Sheets("Actions").Cells(ligne, 5) = NomActions.Value
Sheets("Actions").Cells(ligne, 6) = AchatVente.Value
Sheets("Actions").Cells(ligne, 7) = Valeurcours.Value
Sheets("Actions").Cells(ligne, 8) = ValeurTrade.Value
Sheets("Actions").Cells(ligne, 9) = StopLoss.Value
Sheets("Actions").Cells(ligne, 17) = Commentaire.Value

Unload Me

Je sais que pour mettre une condition il faut mettre IF NumOrdre=##-##-###### then . pour le reste je ne sais pas comment lui dire de m'avertir si le format n'est pas celui la et surtout qu'il ne quitte pas la feuille de saisi.

Merci d'avance pour votre aide.
Passez une agréable après midi.
 

plouff

XLDnaute Junior
Re : msg si format de textbox et pas bonne

Ca fonctionne si par exemple je ne mais pas les -.
En revanche si je mes par exemple 11-2325-215654 il me l'increment quand meme.
Pourtant avec le format près définie ##-##-###### il ne devrait pas? si?
 

thebenoit59

XLDnaute Accro
Re : msg si format de textbox et pas bonne

Ce n'est pas très propre mais ça peut être fonctionnel. Tiens moi au courant:

Code:
If Len([a1]) <> 12 Or Mid([a1], 3, 1) <> "-" Or Mid([a1], 6, 1) <> "-" Then MsgBox "Erreur", 16: Exit Sub

Remplace [a1] par NumOrdre.Value
 

plouff

XLDnaute Junior
Re : msg si format de textbox et pas bonne

Au top. ça fonctionne nikel.

Bon je comprend absolument rien a ton code. je pense "-" represente les - dans le format de celulle. pour le reste c'est du chinois..lol

En tout cas merci ça me permet d'avancé sur le développement de mon tableau de bord plus rapidement sans passer 3H sur des problèmes qui me paraisse être des montagnes sur VBA quand pour vous (les gars du forum) c'est une broutille.

Quand j'ai d'autre problème je peux te les partager ici?
 

thebenoit59

XLDnaute Accro
Re : msg si format de textbox et pas bonne

La fonction Mid([a1], 3, 1) <> "-"
[a1] : ma valeur en Cellule A1
3 : le positionnement du caractère souhaité
1 : le nombre de caractères extrait à partir du 3ème
S'il est différent au - de ton format cela donne une erreur.

Tout dépend de ton problème. S'il n'a rien à voir avec le sujet en cours, tu risques de ne pas avoir assez de visibilité pour de l'aide.
 

plouff

XLDnaute Junior
Re : msg si format de textbox et pas bonne

Re Benoit

Dit moi, lorsque j'ai rentré toute met donnée dans ma ligne par le biais d'un premier userform, je cherche a mettre a jour cette ligne par le biais d'un second userform.

J'ai deja bataillé avec celui ci pour developper le code afin qu'il aille me chercher la bonne ligne en fonction du numero ordre que j'avais deja rentré avec mon premier userform pour la mettre a jour.

Donc ça c fais...

Mais j'aimerai pouvoir modifier mon commentaire et donc qu'il apparaisse dans mon userform.

J'ai utilisé ce code:
PHP:
Private Sub UserForm_Initialize()
      Me.NumeroOrdre.RowSource = "Devise!D11:D" & Sheets("Devise").Cells(1, 1).End(xlDown).Row
      DateSorti.Value = CDate(CSng(Date))
End Sub

Private Sub Quitte_Click()



'déclaration des variables :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
Dim PlgLigne As Range

'********* à adapter ***********
'affectation de valeurs aux variables :
Valeur_Cherchee = NumeroOrdre
    'dans la première colonne de la feuille active
Set PlageDeRecherche = ActiveSheet.Columns(4)
'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

Set Me.commentaire = PlgLigne(2).Cells(ligne, 17)

Set PlgLigne = Trouve.EntireRow
    PlgLigne(2).Cells(ligne, 13) = EvolutionCour.Value
    PlgLigne(2).Cells(ligne, 10) = DateSorti.Value
    PlgLigne(2).Cells(ligne, 11) = HeureSorti.Value
    PlgLigne(2).Cells(ligne, 15) = Positif.Value
    PlgLigne(2).Cells(ligne, 16) = Negatif.Value
    
    
Unload Me
End Sub

Je pensais quand metant Set Me.commentaire = PlgLigne(2).Cells(ligne, 17) il aurait été me chercher le commentaire et me l'affiché dans l'userform pour que je puisse le modifier mais quenini...

As tu une idée du code pour que je puisse faire cette manip.

Merci Benoit
 

Discussions similaires

Réponses
3
Affichages
331

Statistiques des forums

Discussions
312 081
Messages
2 085 157
Membres
102 798
dernier inscrit
Choky13