Aide pour une MFC en VBA

polH

XLDnaute Nouveau
Bonjour le forum

je suis débutant en VBA et j'aimerais rajouter dans le code d'un tableau une VBA pour une mfc classique pour ma colonne F contenant un menu déroulant:

Texte spécifique contenant 1-En Attente; 2-Accepté; 3-Refusé;4-Annulé; 5-Facturé avec les couleurs comme il y a dans le gestionnaire de MFC

il s'agit d'un tableau fait par un ancien collègue doué qui a développé toutes ses mfc par code VBA.
Plutôt que de saccager son travail je préfère en profiter et apprendre un peu le VBA =)
il y a une =MOD(LIGNE();2)=0 dans le VBA qui passe au dessus des MFC classique

Où et quelque code rajouter en vba ?

ci joint le tableau

merci d'avance pour votre aide
 

Pièces jointes

  • exemple.xlsm
    92 KB · Affichages: 48
  • exemple.xlsm
    92 KB · Affichages: 53
  • exemple.xlsm
    92 KB · Affichages: 57

Misange

XLDnaute Barbatruc
Re : Aide pour une MFC en VBA

Bonjour

franchement utiliser excel 2010 et mettre en couleur une ligne sur 2 par VBA alors que la fonctionnalit (associée à beaucoup d'autres avantages !) existe de base je trouve que c'est chercher la complication. Ca s'appelle un tableau : onglet accueil/Style/mettre sous forme de tableau. Le gros avantage c'est que cette alternance reste quand on trie, on filtre...
Ca fait 3 fois que ce classeur fait planter mon excel et il met 3 plombes à se mettre à jour ce qui n'est pas très étonnant vu qu'à chague changement de sélection ou double clic on relance toute la macro ! tout ça pour mettre une mefc...
Mieux vaut que tu apprennes à les faire tu verras tu deviendras vite beaucoup plus calé que ton précédent collègue et tu auras un classeur autrement plus facile à manipuler.
Qui plus est ton collègue en 2006 a développé ce classeur avec une version contenant beaucoup moins de lignes et a fait ses mefc sur ... la totalité des lignes ! ce qui est une catastrophe avec une version contenant plus de 1 million de lignes.

j'ai commencé à modifier sur ton fichier mais c'est trop galère. En revoici un tout propre (il y a surement encore quelques validations à mettre en place regarde ce qui manque et si tu n'arrives pas à le faire, on t'expliquera).

Au fait il te suffit d'ajouter une donnée juste en dessous de ton tableau pour qu'elle s'intègre automatiquement à celui-ci et que les mefc et autres (formules notamment quand il y en a) s'appliquent. Elle est pas belle la vie ?
 

Pièces jointes

  • exemple.xlsx
    43 KB · Affichages: 54
  • exemple.xlsx
    43 KB · Affichages: 59
  • exemple.xlsx
    43 KB · Affichages: 55

polH

XLDnaute Nouveau
Re : Aide pour une MFC en VBA

Merci pour votre réponse

je suis d'accord, passer en VBA pour colorer 1/2 ligne est beaucoup troooop lourd !
seulement dans son code il y a des options intéressante auquel il ne faut pas toucher:

_l'impossibilité d'effacer une ligne une fois renseigner
_l'historique
et surement d'autres
Je veux juste améliorer la lecture de ce tableau concernant la colonne F sans toucher au travail qui n'est pas le mien
et la seul façon de le faire définitivement c'est d'intégrer ma mfc dans son code ....
 

Misange

XLDnaute Barbatruc
Re : Aide pour une MFC en VBA

Ce n'est pas seulement que c'est trop lourd... C'est que ça bug. Regarde dans le classeur de départ dans la mise en forme conditionnelle le nombre de lignes qui concernant la mise en couleur de 1 ligne sur deux c'est hallucinant.
Mieux vaut repartir d'un classeur propre et remettre dedans ce qui est utile et nécessaire et le moderniser au passage pour qu'il continue à fonctionner avec excel 2007 et +.
L'impossibilité d'effacer une ligne une fois renseignée
Non la seule façon de le faire n'est certainement pas de ne pas toucher à son code et d'y intégrer ta mefc. Si c'est ce que tu veux absolument faire ce sera sans moi, j'aime pas trop devoir tuer excel par le gestionnaire de tâche (et pourtant j'ai une bonne bécane...)
Par exemple dans le code, toutes les listes de valisation sont mises par macro alors que cela se fait très facilement sans cela (je te les ai du reste remises dans le classeur proposé, j'ai juste pas mis l'alerte sur la date mais là encore ça se met dans données/validation, pas besoin de macro pour ça).

Le code vérifie que le N° de devis n'existe pas déjà. Cela peut aussi se régler avec une mise en forme conditionnelle qui met en rouge par exemple le n° quand on le tape si il existe déjà.

Le code contient des select qui ne servent strictement à rien mais ralentissent considérablement l'exécution.
les formules qui extraient le mois à partir de la date n'ont pas non plus besoin d'être mises par macro. Il suffit de les mettre dans le tableau. Ce sont des formules très simples qui même sur des milliers de lignes ne ralentissent pas le fonctionnement.

Il ne faut garder dans le code que ce qui est réellement utile : les tests sur les suppressions de ligne par exemple.

j'ai du mal à comprendre aussi l'intérêt de mémoriser l'état de la feuille à chaque changement de SELECTION dans la feuille. Bonjour le ralentissement alors que le fait de sélectionner ne change pas la valeur et donc l'état de la cellule.

Mais bon c'est toi qui voit comme on dit !
 

polH

XLDnaute Nouveau
Re : Aide pour une MFC en VBA

Salut
oui je sais pour le nbre de mfc.....flippant !

je suis ton conseil et en prépare un tout neuf pour 2013,
seulement d'ici là je dois remettre a jour ma petite MFC sur la colonne f quand il faut faire le bilan avec les collègues/boss, c'est chiant..

merci pour tes conseils et les pistes de travail
bon week end
 

Misange

XLDnaute Barbatruc
Re : Aide pour une MFC en VBA

Repars du classeur que je t'ai fourni, j'ai déjà fait une bonne partie du boulot... Y compris la mefc sur la colonne F.
Pourquoi veux tu transformer la mefc que tu as actuellement sur la colonne F et la passer en VBA ??? Tu n'as rien à y gagner.
 

Discussions similaires

Réponses
3
Affichages
441

Statistiques des forums

Discussions
312 609
Messages
2 090 193
Membres
104 448
dernier inscrit
lmp