Simplification de code VBA

ichigo

XLDnaute Nouveau
Bonjour à toutes et à tous.

J'arrive à faire 2/3 bricoles avec les userforms sur excel (notamment grâce aux infos que je peux trouver sur le forum !!)

Là j'ai une macro qui fonctionne mais que je souhaiterai simplifier.
Avec des amis on veut se faire imprimer des t-shirts et on a pensé à passer par une macro pour les gestions de commandes.

Je ne sais pas si j'ai choisi la manière la plus simple mais pour faire simple dans le userform, on sélectionne le type de textile, la taille et la couleur. A chaque fois cela donne la propriété visible à "true" ou "false" en fonction du choix.

Dans le code, c'est assez compliqué à écrire et je me demande s'il n'y aurait pas une manière plus simple pour écrire la même chose.
Et puis si je veux rajouter à un moment une couleur ou une autre taille cela m'obligera à aller modifier toutes les autres infos.

J'espère avoir été assez clair et que vous pourrez m'aider.

merci

Mick
 

Pièces jointes

  • essai macro.xls
    115 KB · Affichages: 45
  • essai macro.xls
    115 KB · Affichages: 45
  • essai macro.xls
    115 KB · Affichages: 42

Ratatouil

XLDnaute Nouveau
Re : Simplification de code VBA

Bonjour Ichigo,
Effectivement ton code peut être simplifié, j'ai pas encore tout décortiqué mais le premier truc qui me vient à l'esprit c'est que ta partie de code pour l'affichage du bouton valider que tu répètes plusieurs fois peut être mise dans une sub a part :

private sub Afficher_bouton
if t_shirt.visible.......
end sub

puis tu remplaces ce code dans tes autres sub par "call Afficher_bouton"

je sais pas si j'ai été très clair donc je t'ai mis un exemple dans un module dans ton fichier (module que tu pourras supprimer)

Bonne soirée à toi
 

Pièces jointes

  • essai macro.xls
    96.5 KB · Affichages: 43
  • essai macro.xls
    96.5 KB · Affichages: 46
  • essai macro.xls
    96.5 KB · Affichages: 44

ichigo

XLDnaute Nouveau
Re : Simplification de code VBA

Merci Ratatouil !!
C'est exactement 1 des problèmes que j'avais ! J'ai bien compris ton explication.

Et j'étais en train de me dire mon poste après relecture n'était pas aussi clair que je le pensais.

Mon principal problème à simplifier : c'est un peu comme une permutation circulaire.
Private Sub choix_1_Click()
choix_2.Visible = False
choix_3.Visible = False
choix_4.Visible = False
end sub

Et on aurait la même chose pour le choix du textile, de la taille et de la couleur.

Merci de l'aide déjà apporté.

Mick
 

ichigo

XLDnaute Nouveau
Re : Simplification de code VBA

Bonsoir,
J'ai pas mal modifié le code en faisant appel à des procédures et en utilisant le "call" (merci Ratatouil).
Je gagne en lisibilité et en taille du fichier (de 115 ko à 98).
J'ai essayé de faire la même chose que dans mon poste précédant et en essayant d'utiliser les "call" mais je n'y arrive pas.

Quelqu'un pourrait m'aider à faire une sub du style :

private sub permutation()

if clic_choix_1 then
choix_2.visible = false
choix_3.visible = false
end if

if clic_choix_2 then
choix_1.visible = false
choix_3.visible = false
end if

...
end sub
 

Ratatouil

XLDnaute Nouveau
Re : Simplification de code VBA

Bonsoir Ichigo,

Désolé de pas t'avoir répondu plus tôt.

Pour simplifier ton code sur la partie "visibilité de bouton", je t'envoie un fichier avec un exemple de code que j'utilise assez souvent et quelques explications (en espérant qu'elles seront claires :) ).

Il existe certainement d'autre méthode mais je pense que celle ci pourra t'aider.

Bonne soirée
 

Pièces jointes

  • fichier.xls
    35 KB · Affichages: 59
  • fichier.xls
    35 KB · Affichages: 51
  • fichier.xls
    35 KB · Affichages: 63

ichigo

XLDnaute Nouveau
Re : Simplification de code VBA

Bonsoir,

Héhé !! C'est pas grave. Je ne suis pas pressé, je comprends bien que les gens ont d'autres choses à faire ... surtout avec des we longs!
Et puis cela m'a donné l'occasion d'étudier ta solution et de creuser un peu pour chercher une solution par moi-même.

A 1iere vue ta solution (très bien documenté, les explications sont pil-poil) correspond bien à ce que je recherche.
Je vais regarder cela plus en détail dans la soirée. Si tu veux je te ferai parvenir mon fichier modifié (rangé correctement avec les commentaires qui vont bien) quand j'aurai fini.
Cela pourra aussi aider des personnes sur le forum.

Merci encore
Bonne soirée

Mick
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94