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"

11logiciel-15-forum.zip (169.83 Ko)

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 Sub

dans 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)

19logiciel-15-forum.zip (170.13 Ko)

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

Rechercher des sujets similaires à "fonction rien faux"