[RESOLU] [VB] Appel d'une fonction sur sélection d'une case

Appel d'une fonction sur sélection d'une case [RESOLU] [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 22-05-2006 à 14:49:47    

salut à tous,
 
Je vous explique mon problème, je suis en train de créer un fichier excel avec des petits programmes, Or je voudrais qu'en sélectionnant une case (ex B4) ca me lance un programme qui ouvre une boîte de dialogue.
Je suis perdu, je n'y arrive aps du tout, quelqu'un aurait-il la bonté de m'aider???
 
Merci d'avance


Message édité par nexius26 le 23-05-2006 à 14:39:25
Reply

Marsh Posté le 22-05-2006 à 14:49:47   

Reply

Marsh Posté le 22-05-2006 à 14:54:00    

t'arrives pas à quoi :
détecter si B4 est sélectionnée ?
ou
lancer un programme externe ?

Reply

Marsh Posté le 22-05-2006 à 21:43:20    

Curieuse méthode, en général on clique sur un bouton pour accéder à une boite de dialogue ....
Pour Excel essayes
     
    fichier = Application.GetOpenFilename("All Files (*.PRT),*.PRT" )
    If fichier = False Then Exit Sub
    ......
+ l'aide en ligne sur GetOpenFilename
 
Pour lancer un programme externe  
    .....
    chemin = "C:\Delphi7\Projects\SysDiff\SysDiff_Expr_Light\SysDiff.exe"
    Shell chemin
    .....
 
   Il est possible de passer des paramètres
   .....
   Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" ""H:\chemin\fichier.avi
       """, vbMaximizedFocus
   .....

Message cité 1 fois
Message édité par kiki29 le 23-05-2006 à 03:53:32
Reply

Marsh Posté le 23-05-2006 à 09:37:59    

Arjuna a écrit :

t'arrives pas à quoi :
détecter si B4 est sélectionnée ?
ou
lancer un programme externe ?


 
Ben j'arrive pas à lancer un programme VB en sélection de ma case B4
 

kiki29 a écrit :

Curieuse méthode, en général on clique sur un bouton pour accéder à une boite de dialogue ....
Pour Excel essayes
     
    fichier = Application.GetOpenFilename("All Files (*.PRT),*.PRT" )
    If fichier = False Then Exit Sub
    ......
+ l'aide en ligne sur GetOpenFilename
 
Pour lancer un programme externe  
    .....
    chemin = "C:\Delphi7\Projects\SysDiff\SysDiff_Expr_Light\SysDiff.exe"
    Shell chemin
    .....
 
   Il est possible de passer des paramètres
   .....
   Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" ""H:\chemin\fichier.avi
       """, vbMaximizedFocus
   .....


 
Il y a un malentendu, dans ta solution on appelera par exemple windows media player avec un fichier alors que dans mon cas, je veux (seulement??) appeler un programme VB qui est dans un des modules sur la feuille.
En fait il se trouve que c'est un programme qui est censé aider à la saisie, donc il est plus pratique d'utilisation dès que l'on clique dessus.
 
 
 
Merci en tout cas


Message édité par nexius26 le 23-05-2006 à 09:40:03
Reply

Marsh Posté le 23-05-2006 à 10:53:27    

Je connais pas de moyen simple de le faire en VBA et à mon avis ce n'est pas gérer en VBA.je peux me tromper
 
Donc si tu veux appeler une USerForm pour la saisie fait le comme je te l'ai dit via un bouton

Reply

Marsh Posté le 23-05-2006 à 11:18:22    

Ben c'est plus duVB que du VBA mais en tout cas c'est sympa d'avoir essayé de m'aider, j'essaie d'autres solutions, si je trouve je vous en ferai profiter

Reply

Marsh Posté le 23-05-2006 à 11:24:24    

Zorro est arrivé :sol:
 

Code :
  1. Option Explicit
  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3.     If (Target.Cells.Address = "$B$4" ) Then
  4.         Shell "notepad.exe", vbNormalFocus
  5.     Else
  6.         Target.Value = "dtc"
  7.     End If
  8. End Sub


 
A mettre dans le code associé à la Sheet qui doit prendre en compte le click sur B4

Reply

Marsh Posté le 23-05-2006 à 11:25:26    

/me trouve que vous bloquez sur des trucs vraiment simple des fois :o
 
Un petit coup de "F1" et j'ai trouvé en 30 secondes comment faire...

Reply

Marsh Posté le 23-05-2006 à 11:42:29    

Arjuna a écrit :

Zorro est arrivé :sol:
 

Code :
  1. Option Explicit
  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3.     If (Target.Cells.Address = "$B$4" ) Then
  4.         Shell "notepad.exe", vbNormalFocus
  5.     Else
  6.         Target.Value = "dtc"
  7.     End If
  8. End Sub


 
A mettre dans le code associé à la Sheet qui doit prendre en compte le click sur B4


 
 
2 questions :
 

Code :
  1. shell "notepad.exe"

kesako???  j'appelle ensuite un programme dans mon module donc je comprends pas trop ce que ça fait là je pense qu'il faut changer.
 

Il me marque DTC de partout même en B4, c'est facheux.... ;)

Reply

Marsh Posté le 23-05-2006 à 11:43:05    

c pas normal ça :o

Reply

Marsh Posté le 23-05-2006 à 11:43:05   

Reply

Marsh Posté le 23-05-2006 à 11:44:13    

Moi j'ai fait la macro avec Excel 2003
 
Avec les versions plus anciennes, il faut peut-être modifier ce test : Target.Cells.Address = "$B$4"
 
Fait un MsgBix de Target.Cells.Address pour voir ce qu'il contient quand tu cliques sur B4
 

Reply

Marsh Posté le 23-05-2006 à 11:44:51    

Sinon, en effet, l'appel à Notepad est à remplacer par l'appel de ton module

Reply

Marsh Posté le 23-05-2006 à 12:04:17    

Arjuna a écrit :

Sinon, en effet, l'appel à Notepad est à remplacer par l'appel de ton module


 
Yes c'est deja mieux, après dans le shell... j'avoue que j'ai quelques problèmes (boulet inside  :D ), je dois appeler une macro qui est dans le module 2 et je vois pas tellement comment ca fonctionne je persévère
 
edit: c'est grave si le fichier que l'on doit appeler est une macro et non un prog, j'ai regardé un peu dans l'aide  sur la fonction shell, il n'y a rien de précisé.


Message édité par nexius26 le 23-05-2006 à 12:09:43
Reply

Marsh Posté le 23-05-2006 à 12:13:41    

N'utilise pas shell...
 
Call Module2.MaMacroQuiVaBien()
 
PS: et dans le cas d'une Macro, c'est pas un "programme", juste une "fonction".


Message édité par Arjuna le 23-05-2006 à 12:14:20
Reply

Marsh Posté le 23-05-2006 à 12:20:32    

CA MAAAAAARCHE!!!!
 
(sorry pour le flood et le caps lock)
 
bon j'ai fait péter la condition else vu que je protège le reste des cellules
 
edit: Thanks arjuna pour tout parce que j'aurais vraiment pas trouvé seul  
 
 :jap:  :jap:  :jap:  :jap:  (ca mérite un combo)


Message édité par nexius26 le 23-05-2006 à 12:24:13
Reply

Marsh Posté le 23-05-2006 à 12:21:54    

ben quoi ? dtc partout c'est cool :o

Reply

Marsh Posté le 23-05-2006 à 12:26:11    

Arjuna a écrit :

ben quoi ? dtc partout c'est cool :o


 
:pt1cable:  :pt1cable:  
Ben avec la protection ca fait surtout un gros plantage mais ca pourrait effectivement être joli   :p  
 
 :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed