VB_PtitCat
Messages postés197Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 mai 2009
-
6 juin 2007 à 11:08
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
6 juin 2007 à 13:55
SalutaZion,
Voilà donc hier j'ai demander de l'aide pour lancer "automatiquement une macros lord d'un changemetn sur ma feuill EXCEL
voici le bout de prog :
Le module1 contient :
Coloration syntaxique automatique par Kenji a écrit:, ----
'Ceci est une variable Public d'UN Module a ajouter elle represente la memorisation de la cellule
Public M_Valeur(1 To 32) AsString
Public j AsInteger
Le ThisWorkBook contient :
PrivateSub Workbook_Open()
j = 1
'nous allons "espionner" la colonne B
For i = 2 To 33
M_Valeur(j) = Worksheets("Feuil1").Range("B" & CStr(i + 1)).Value
j = j + 1
Next i
EndSub
Et une Feuille ici Feuil1 contient :
Coloration syntaxique automatique par Kenji a écrit:, ----
'Cet événement survient à chaque modification dans la feuille et est placer dans la feuille à espionner
PrivateSub Worksheet_Change(ByVal Target As Range)
'on verifie que la modification a bien eu lieu sur la plage souhaitée (B2:B33) 'Column 2 B
If (Target.Column = 2) And (Target.Row > 1) And (Target.Row < 34) Then
'on regarde alors l'ancienne valeur If (M_Valeur(Target.Row - 1) vbNullString And Target.Value "1") Or (M_Valeur(Target.Row - 1) = "0"And Target.Value = "1") Or (M_Valeur(Target.Row - 1) = "1"And Target.Value = vbNullString) Or (M_Valeur(Target.Row - 1) = "1"And Target.Value = "0") Then
Call Macro2
'x = MsgBox(" Mise à Jour " & (Chr(13) & Chr(10)) & " ''OK'' ", 64, "Mise à Jour")
EndIf
'on mémorise la valeur
M_Valeur(Target.Row - 1) = Target.Value
EndIf
EndSub
LE PROBLEME en fait c'est que ce n'est pas l'utilisateur qui modifie les paramètre sur la feuille EXCEL mais un aute logiciel, et de ce fait le Worksheet_Change ne fonctionne pas, si quelqu'un peut m'aider cela serais très sympatique^^
MerZi ... Zi ... Zi ...
PtitCat
VB_PtitCat
Messages postés197Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 mai 2009 6 juin 2007 à 11:25
Dsl, mais je ne mis connais pas bcp c'est la deuxième macros que je fais dans ma vie et par concéquent je ne connais VB que depuis 2smaine, on ma conseillé de faire mon prog comme celà alors j'l'ai fait avec quelque mais vraiment quelque modif, et comme lorsque je changer les valeurs dans ma feuille EXCEL la macros ce lancer correctement, je m'été dit qu'avec le logiciel que j'utilise pour placer les valeurs dans EXCEL celà marcherais aussi, mais lorsque j'ai tester ce matin j'ai constater qu'en effet que la fonction Worksheet_Change ne fonctionnée pas car la macros ne se lance plus ...
Alors si vous pouviez mieux m'explique vos propos car j'avoux avoir un peut de mal gérer tout cela
MerZi ... Zi ... Zi ... PtitCat P.S:DSL pour l'orthographe
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 6 juin 2007 à 11:38
Salut,
Il faudrait nous en dire plus.
Qui pilote (application) pilote Excel.
Je viens de teste de modifier une cellule d'un classeur avec VB6 et l'événement Change de la Feuille survient bien.
D'ailleurs je ne vois pas du tout pourquoi EXCEL ne lèverait pas les même événements (même moments) sous prétexte que c'est une autre appli qui écrit dans les cellules.
Brefs encore une fois il faut que tu soit plus précis.
VB_PtitCat
Messages postés197Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 mai 2009 6 juin 2007 à 11:56
Je sais bien !!
L'appli qui rempli EXCEL est InTouch (dsl de ne pas l'avoir précisé je ne pensé pas celà utile)
j'avou ne pas comprendre non plus pourquoi il ne les prend pas en conte, surtt que comme tu vien de le dire tu a réussi!!!
MerZi ... Zi ... Zi ...
PtitCat
Vous n’avez pas trouvé la réponse que vous recherchez ?
VB_PtitCat
Messages postés197Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 mai 2009 6 juin 2007 à 13:04
Je vais être aussi précise que possible, en fait sur mon appli InTouch j'ai créer une simple fenêtre qui contient 32 causes discrète (prend uniquement les valeur de 1 ou 0), lorsque je cliquee sur une cause sa nouvelle valeur est réécrite dans une colonne EXCEL.
mon appli EXCEL elle comporte un tableau de 34 cases/34 dans la première colonne sont placé les mnémoniques des causes (cause1, cause2, ...), dans la second sont placés les valeurs de ces causes rempli par InTouch, dans la première ligne sont placé les mnémoniques des effets (effet1, effet2, ...) des "X" ou "x" sont placés dans le tableau afin de préciser quels causes produits quels effet.
Ma macros de base, était lancer manuellement et éspionné tout le tableau afin de déterminer si toutes les causes d'un effet étaient mise à 1, si c'était le cas la colonne en question est mise en rouge.
Le bout de macros que j'ai rajouter sert a faire une mise a jour automatique, des qu'un valeur de cause et modifier, ma macros de base est lancé, le problème c'est que ca ne veut absolument pas marché lorsque c'est InTouche qui modifie ces valeurs de causes, alors que si moi je vais les modifier directement via EXCEL ma macros marche parfaitement, voilà pourquoi j'ai besoin de votre aide pour eclairessir le mystère qui repose sur ce BUG !!