Bonjour tout le monde,

Je suis en train de créer un script permettant de créer un login pour un utilisateur à partir d'un nom et prenom entrée en inputbox. Ainsi qu'un mot de passe généré aléatoirement (fonction random). J'ai quelques soucis au niveau d'une partie de la création du mot de passe et des fonctions pour la création du login.

Au niveau du password:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Function FaleaCar()
 
Dim CarSpec 
Dim Cara
 
CarSpec =  ":()`!%$^&*-+=|\{}[];.?/"
 
Cara = Mid(CarSpec, Falea (1, Len (CarSpec), 1)) //Erreur code 800A01C2
FaleaCar = Cara
 
End Function
la fonction nombre aléatoire (falea):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Function Falea (Min, Max)
Randomize
      Falea = Int((Max - Min +1)* Rnd +Min)
 
End Function
Au niveau de l'utilisateur: je comprend pas comment faire une fonction d'une fonction à partir d'une variable qui à reçu les valeurs de l'instruction de la fonction. (Dans le cas la, je veux tout d'abord virer les espaces puis avec une autre fonction (déja créer) supprimer les accents et mettre le tout en minuscules)

Le programme principal:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Dim Prenom, Nom, password, PrenomSScaracteres, NomSScaracteres
Dim login 'login généré en final'
 
'filtrage des espaces, appel fonction chaines sans espaces'
 
Prenom = ""
Nom = ""
PrenomSScaracteres = ""
NomSScaracteres = ""
 
Prenom = Fchaine_s_espace_Prenom (PrenomSSespace)
Nom = Fchaine_s_espace_Nom (NomSSespace)
 
Prenom = PrenomSSespace 
Nom = NomSSespace
 
If Nom = "" Or Prenom = "" Then
    MsgBox "Erreur, nom ou prenom vide"
Else
 
'Filtrage des caractères spéciaux et remplacement des accents + minuscule'
 
PrenomSScaracteres = Prenom&(Flog_Prenom)
NomSScaracteres = Nom&(Fchaine_nom)
 
End IF
'Nom = Fchaine_s_espace_Nom (NomSSespace)
 
'Prenom = Fchaine_s_espace_Prenom (PrenomSSespace)
 
 
'filtrage des tiret, appel fonction chaines sans tiret prenom'
 
'Prenom = Flog_prenom_ssTiret (Machaine) &  Flog_Prenom()   'nom sans tiret ?'
 
login = Prenom & Nom 
password = LetrreMajAlea()&CinqLetrreMinAlea()&FaleaCar()&FaleaChiffre() 'Une lettre majusucule suivie de 5 lettre minuscules suivie d'un caractère spécial et suivi d'un chiffre
 
MsgBox "le login utilisateur crée à partir de: " & Prenom & " " & Nom & " est " & login & Chr(13) & "avec comme mot de passe: " & password
Merci d'avance pour votre aide.

ps: le code compet au pire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
						           'FILTRAGE NOM ET PRENOM DE LEUR CARACTERES SPÉCIAUX
 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fonction filtrage caractères spéciaux prénom et miniscule'
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
Function Flog_Prenom()
 
Dim PPrenom, lettre, Prenom, LettrePrenom
 
LettrePrenom = ""
 
PPrenom = LCase(Prenom)
 
lettre = Mid (PPrenom,1,1)
 
If(lettre >="a" and lettre =<"z") Then
            LettrePrenom = lettre
 
 
Else
 
Select Case Asc (lettre)
       Case 232, 233, 234, 235
       LettrePrenom = "e"
       Case 224, 225, 226, 227, 229, 230
       LettrePrenom = "a"
       Case 236, 237, 238, 239
       LettrePrenom = "i"
       Case 242, 243, 244, 245, 246, 248
       LettrePrenom = "o"
       Case 249, 250, 251, 252
       LettrePrenom = "u"
 
End Select
 
End If
 
End Function
 
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fonction filtrage caractères spéciaux nom et miniscule
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
Function Fchaine_nom()
 
Dim PNom, lettre, Nom, NomSSMaj
 
NomSSMaj = ""
 
PNom = LCase(nom)
 
lettre = Pnom
 
If(lettre >="a" and lettre =<"z") Then
             NomSSMaj = lettre
 
 
Else
 
Select Case Asc (lettre)
       Case 232, 233, 234, 235
       NomSSMaj = "e"
       Case 224, 225, 226, 227, 229, 230
       NomSSMaj = "a"
       Case 236, 237, 238, 239
       NomSSMaj = "i"
       Case 242, 243, 244, 245, 246, 248
       NomSSMaj = "o"
       Case 249, 250, 251, 252
       NomSSMaj = "u"
 
End Select
 
End If
 
End Function
 
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                             'FONCTION FILTRAGE ESPACE ET TIRET
 
 
''''''''''''''''''''''''''''''
'Fonction filtrage espace Prenom
 
'''''''''''''''''''''''''''''
 
Function Fchaine_s_espace_Prenom (PrenomSSespace)
 
PrenomSSespace = Inputbox ("prenom")
 
PrenomSSespace = Replace(PrenomSSespace, " ", vbNullString)
 
End Function
 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fonction filtrage espace Nom
 
'''''''''''''''''''''''''''''
Function Fchaine_s_espace_Nom (NomSSespace)
 
NomSSespace = Inputbox ("nom")
 
NomSSespace = Replace(NomSSespace, " ", vbNullString)
 
End Function
 
 
''''''''''''''''''''''''''''''
'Fonction filtrage des tirets
 
'''''''''''''''''''''''''''''
 
Function Flog_prenom_ssTiret (Machaine) 
 
Dim i
 
Flog_prenom_ssTiret = mid (Machaine,1,1) ' prend le 1 er caractére
 
For i = 2 To Len(Machaine)
	If mid (Machaine,i,1) = "-" Then     ' test si tiret
		Flog_prenom_ssTiret = Flog_prenom_ssTiret & mid (Machaine,i+1,1) ' prend caractére suivant
	End If
Next		
 
End Function
 
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''						
					                    	'CREATION PASSWORD
 
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 
''''''''''''''''''''''''''''''
'Fonction lettre Maj pour password
 
'''''''''''''''''''''''''''''
Function LetrreMajAlea()
 
LetrreMajAlea = Chr(Falea (Asc ("A"), Asc ("Z")))
 
End Function
 
''''''''''''''''''''''''''''''
'Fonction lettre Min pour password
 
'''''''''''''''''''''''''''''
Function LetrreMin()
 
LetrreMin = Chr(Falea (ASc ("a"), ASc ("z")))
 
End Function
 
 
''''''''''''''''''''''''''''''
'Fonction 5 lettre min pour password
 
'''''''''''''''''''''''''''''
 
Function CinqLetrreMinAlea()
 
Dim i, letrreMinChaine
 
letrreMinChaine = LetrreMin()
 
For i= 1 To 5
 
lettreMinChaine = lettreMinChaine & LetrreMin()
CinqLetrreMinAlea = lettreMinChaine
 
Next
 
End Function
 
 
''''''''''''''''''''''''''''''
'Fonction choisir un caractère spécial
 
'''''''''''''''''''''''''''''
 
Function FaleaCar()
 
Dim CarSpec 
Dim Cara
 
CarSpec =  ":()`!%$^&*-+=|\{}[];.?/"
 
Cara = Mid(CarSpec, Falea (1, Len (CarSpec), 1))
FaleaCar = Cara
 
End Function
 
''''''''''''''''''''''''''''''
'Fonction chiffre aléatoire entre 0 et 9
 
'''''''''''''''''''''''''''''
Function FaleaChiffre()
 
FaleaChiffre = Falea (0,9)
 
End Function
 
''''''''''''''''''''''''''''''
'Fonction nombre aléatoire
 
'''''''''''''''''''''''''''''
 
'cette fonction retourne un nombre aléatoire
'entre les bornes passées en paramètre
 
Function Falea (Min, Max)
Randomize
      Falea = Int((Max - Min +1)* Rnd +Min)
 
End Function
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                     'PROGRAMME PRINCIPAL
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
Dim Prenom, Nom, password, PrenomSScaracteres, NomSScaracteres
Dim login 'login généré en final'
 
'filtrage des espaces, appel fonction chaines sans espaces'
 
Prenom = ""
Nom = ""
PrenomSScaracteres = ""
NomSScaracteres = ""
 
Prenom = Fchaine_s_espace_Prenom (PrenomSSespace)
Nom = Fchaine_s_espace_Nom (NomSSespace)
 
Prenom = PrenomSSespace 
Nom = NomSSespace
 
If Nom = "" Or Prenom = "" Then
    MsgBox "Erreur, nom ou prenom vide"
Else
 
'Filtrage des caractères spéciaux et remplacement des accents + minuscule'
 
PrenomSScaracteres = Prenom&(Flog_Prenom)
NomSScaracteres = Nom&(Fchaine_nom)
 
End IF
'Nom = Fchaine_s_espace_Nom (NomSSespace)
 
'Prenom = Fchaine_s_espace_Prenom (PrenomSSespace)
 
 
'filtrage des tiret, appel fonction chaines sans tiret prenom'
 
'Prenom = Flog_prenom_ssTiret (Machaine) &  Flog_Prenom()   'nom sans tiret ?'
 
login = Prenom & Nom 
password = LetrreMajAlea()&CinqLetrreMinAlea()&FaleaCar()&FaleaChiffre() 'Une lettre majusucule suivie de 5 lettre minuscules suivie d'un caractère spécial et suivi d'un chiffre
 
MsgBox "le login utilisateur crée à partir de: " & Prenom & " " & Nom & " est " & login & Chr(13) & "avec comme mot de passe: " & password