quel Code plus compact pour...

C

Christian

Guest
quel est la soution pour écrire autrement ces lignes quasiement identiques à paer MAJ1 ou 2 ou 3 ou ... :

If MAJ1 <> "" Then
MiseAjour = MAJ1
Call MAJgo
End If

If MAJ2 <> "" Then
MiseAjour = MAJ2
Call MAJgo
End If

If MAJ3 <> "" Then
MiseAjour = MAJ3
Call MAJgo
End If

MERCI !
Blandine
 
R

Ricky boy

Guest
Cette boucle devrait accomplir la meme tache si je ne me trompe pas!
Tu n'as qu'a ajuster le nombre de boucles (nbre_boucles) au nombres de MAJ1, MAJ2, MAJ3 que tu souhaites.

Bonne journée!

Eric



Dim maj As String, counter As Integer, nbre_boucles As Integer
nbre_boucles = 10
counter = 1

While counter < nbre_boucles


maj = "MAJ" & counter

If maj <> "" Then
MiseAjour = maj
Call MAJgo
End If

counter = counter + 1


Wend
 
T

Ti

Guest
non, en fait la procédure ci-dessus ne peut pas fonctionner, car une variable n'est pas une chaine de caractères. Voici une solution parmi d'autres :

Sub TestMajGo(maj As String)
If maj <> "" Then
miseajour = maj
Call majgo
End If
End Sub

Sub test()
TestMajGo MAJ1
TestMajGo MAJ2
TestMajGo MAJ3
'etc.
End Sub

D'autre part, j'ai regardé à nouveau la procédure envoyée hier. Je n'ai pas constaté d'erreur même en copiant un module contenant des variables globales. De toute façon, le module étant renommé juste avant sa destruction, ce nom (avec temp) ne doit pas rester, ou alors c'est qu'il y a une erreur.
Pour supprimer la protection VBA dans le programme, je n'ai pas trouvé de solution. Apparemment, rien n'est prévu pour cela :(
bon courage tout de même
 

Discussions similaires

Statistiques des forums

Discussions
313 105
Messages
2 095 348
Membres
106 246
dernier inscrit
Christelle CUPIT