Fonction SI: rien faire si faux
je ne pense pas que ce soit l'age, car tu viens a bout de tout mes problemes! lol
Pour resumer, j'ai entre ta macro de ton fichier pour faire du "live" dans mon application et elle se comporte comme l'autre, alors je ne sais pas qu'est-ce qui est differend entre le fichier que tu m'avais fournis et mon application modifie. Je t'envoi mon application. J'ai retrancher toute les macros qui n'ont pas attrait a notre probleme.
notre traitement doit s'executer sur la feuille "ASS". Ta macro porte le nom "traitement new". Je pense l'avoir bien copie sauf "option explicit" que je ne savais pas quoi faire avec..
La liste "Cat" se trouve sur la feuille "traitement"
Bonsoir
Mauvaise compréhension
La 1ère macro (celle qui fonctionne avec le bouton rouge "Assembler" la macro s'appelle Tableau dans la Version 4
La 2ème macro (celle qui interprète en "live" le code ne colonne I ) est une macro événementielle et elle s'appelle Private Sub Worksheet_Change(ByVal Target As Range)
Pour voir son code
Clic droit sur le nom de l'onglet ----> Visualiser le code
C'est cette macro que je colle ici que tu dois copier dans la code de ta feuille de ton fichier réel (Feuille ASS)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Kase As Range
Dim I As Integer
Dim Tablo(1 To 1, 1 To 4)
If Not Intersect(Columns("I"), Target) Is Nothing And Target.Count = 1 Then
For Each Kase In [Cat] ' Pour chaque élément de la zone des mnémoniques
If UCase(Target) Like Kase Then
Application.EnableEvents = False
' Je suis obligé de passer par un tableau sinon erreur ???????
For I = 1 To 4 ' On recopie dans le tableau les 4 éléments associés à la mnémonique
Tablo(1, I) = Kase.Offset(0, I) ' Nouvelle formule que l'on peut inscrire directement
Next I
Target.Offset(0, -6).Resize(1, 4) = Tablo
Target = UCase(Target)
Application.EnableEvents = True
Exit For
End If
Next Kase
End If
End Subdans le fichier joint
Je t'ai modifié la macro Traitement (Module34) (prend en compte à partir de la ligne Excel 2)
Je t'ai mis en commentaire la macro Traitement_Bis (module38) Macro inutile
Je t'ai rajouté le code de la procédure événementielle dans le code de la feuille ASS (drôle de nom)
Ca marche mais j'ai eu de la difficulte. C'etait la premiere fois que j'allais dans l'editeur visual basic. Il semblerais que c'est la qu'on ecris des macros evenementielles? il y a un choix a droite en haut. Tu semble avoir choisi "change". Pourquoi on ne peut pas voir les macro que j'ai ecris par cet editeur?
Pour le nom de mes feuilles, met ca sur le manque d'experience.
C'est tres pratique cette macro evenementiel car elle me permet de corriger mes erreurs avant d'appeler la compilation, qui elle prend 5 secondes. Suppose que j'aurais eu plusieurs erreurs, j'aurais pu faire x fois 5 secondes avant d'avoir tout corriger. Tandis que maintenant je corrige au fur et a mesure.
Tres cool tout ca!
Merci Banzai et bon debut de semaine!
Bonsoir
CAPUCIN a écrit :C'etait la premiere fois que j'allais dans l'editeur visual basic.
Toutes les macros sont dans l'éditeur Visual Basic
C'est leur emplacement qui diffère
Comme c'est une macro événementielle d'une feuille en particulier (dans ce cas feuille ASS) sa place est dans le module Feuille de la feuille ASS
CAPUCIN a écrit :Tu semble avoir choisi "change"
Non c'est la réalité, cet évènement arrive quand une cellule est modifiée, ce qui est le cas quand tu écris ton code
CAPUCIN a écrit :Pourquoi on ne peut pas voir les macro que j'ai ecris par cet editeur?
Parce que les macros que l'on écris (avec l'enregistreur) sont notées dans un module standard
On ne peux pas écrire de procédure événementielle avec l'enregistreur
Bonne continuation