fonction SI: rien faire si faux  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Re: fonction SI: rien faire si faux

Messagepar CAPUCIN » 22 Jan 2012, 20:51

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"
Fichiers joints
LOGICIEL 15 forum.zip
(169.83 Kio) Téléchargé 1 fois
CAPUCIN
Membre fidèle
 
Messages: 372
Inscription: 05 Déc 2011, 05:22
Localisation: montreal
Version Excel: 2003 FR

Re: fonction SI: rien faire si faux

Messagepar Banzai64 » 22 Jan 2012, 22:16

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)
Code: Tout sélectionner
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)
Fichiers joints
LOGICIEL 15 forum.zip
(170.13 Kio) Téléchargé 4 fois
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4594
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Re: fonction SI: rien faire si faux

Messagepar CAPUCIN » 22 Jan 2012, 23:13

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!
CAPUCIN
Membre fidèle
 
Messages: 372
Inscription: 05 Déc 2011, 05:22
Localisation: montreal
Version Excel: 2003 FR

Re: fonction SI: rien faire si faux  Sujet résolu

Messagepar Banzai64 » 22 Jan 2012, 23:25

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
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4594
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Précédente

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot] et 9 invités