Conversion VBA Excel vers C# [Résolu]

Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- 30 avril 2018 à 20:46 - Dernière réponse :
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- 4 mai 2018 à 11:30
Bonjour, Merci d'avance pour votre aide. Voila j'avais fais ce code en Excel Vba :


Me.TxtNumMoov.MaxLength = 11 'nb caracteres maxi dans textbo

valeur = Len(Me.TxtNumMoov.Text)
If valeur = 0 Then
Select Case KeyAscii
Case 57, 55

Case Else

KeyAscii = 0
End Select

End If
If valeur = 1 Then
bar = Mid(Me.TxtNumMoov, 1, 1)
'contrôle sur le 7 qui prendra que 9
If bar = "7" Then
Select Case KeyAscii
Case 57 'le chiffre 9
Case Else
KeyAscii = 0
End Select
Else
'contrôle sur le 9 qui prendra de 6 à 9
If bar = "9" Then
Select Case KeyAscii
Case 54 To 57 'les chiffres de 6 à 9
Case Else
KeyAscii = 0
End Select
End If
End If
End If

'contrôle de la saisie
Select Case KeyAscii
Case 48 To 57 'les chiffres de 0 à 9

Case Else

KeyAscii = 0
'MsgBox "Carractère interdit !"
End Select

'placer un "-" après chaque deux byte de nombre
Select Case Len(TxtNumMoov.Text)
Case 2, 5, 8

TxtNumMoov.Text = TxtNumMoov.Text & "-"
End Select

Me.TxtNumMoov.SetFocus


Alors j'aimerais refaire la chose même en C#. bon le but de ce code est de contrôler la saisie de l'utilisateur et de personnaliser l'affichage de la saisie du textbox du genre (XX-XX-XX-XX). bon j'ai essayé de faire cela avec substring le résultat n'était pas ça. Merci d'avance
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 novembre 2018
30 avril 2018 à 20:58
2
Merci
Bonsoir

alors on va commencer par ne surtout pas traduire ton code.
VBA, c'est un langage vaguement orienté objet.

C# c'est un langage tout objet.

Pour bien coder en C#, il ne faut pas penser l'algorithme comme en VBA.
Tu "oublies" ce que tu connais et tu réapprends.

Donc en .Net (comme dans beaucoup de langages), il existe un contrôle qui fait ça tout seul
https://msdn.microsoft.com/fr-fr/library/system.windows.forms.maskedtextbox(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

Merci Whismeril 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- 1 mai 2018 à 08:45
ok merci
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- 2 mai 2018 à 04:37
salut, pour l'affichage de la saisie c'est ok avec Append(). Mais j'ai ce message d'erreur : An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll

Additional information: L'index et le compte doivent faire référence à un emplacement situé dans la chaîne. ce message apparait au moment de la gestion des saisies.


// contrôle de saisie
if(koa==1)
{
if (go != "9" || go != "7")
{
maskedTextBox2.Text.Remove(1, 1); // c'est ici
}

}


Merci
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 novembre 2018
- 2 mai 2018 à 06:54
Je t’ai dit que ce controle fait ca tout seul.
Tu lui mets un masque et c’est tout pas de code.

Ps pour poster un code, il faut forcer le langage de la coloration (là ça fait des pavés gris, moche, sans ascenseur, bref illisibles) voir ici
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- 4 mai 2018 à 11:30
Merci problème résolu
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.