Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2573 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1372196
nexius26
Yeah !!!!!!!!!
Posté le 22-05-2006 à 14:49:47  profilanswer
 

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
mood
Publicité
Posté le 22-05-2006 à 14:49:47  profilanswer
 

n°1372206
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-05-2006 à 14:54:00  profilanswer
 

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

n°1372591
kiki29
Posté le 22-05-2006 à 21:43:20  profilanswer
 

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
n°1372817
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 09:37:59  profilanswer
 

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
n°1372904
kiki29
Posté le 23-05-2006 à 10:53:27  profilanswer
 

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

n°1372955
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 11:18:22  profilanswer
 

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

n°1372959
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 11:24:24  profilanswer
 

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

n°1372962
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 11:25:26  profilanswer
 

/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...

n°1372979
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 11:42:29  profilanswer
 

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.... ;)

n°1372980
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 11:43:05  profilanswer
 

c pas normal ça :o

mood
Publicité
Posté le 23-05-2006 à 11:43:05  profilanswer
 

n°1372981
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 11:44:13  profilanswer
 

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
 

n°1372984
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 11:44:51  profilanswer
 

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

n°1373025
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 12:04:17  profilanswer
 

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
n°1373039
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 12:13:41  profilanswer
 

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
n°1373054
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 12:20:32  profilanswer
 

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
n°1373058
Arjuna
Aircraft Ident.: F-MBSD
Posté le 23-05-2006 à 12:21:54  profilanswer
 

ben quoi ? dtc partout c'est cool :o

n°1373063
nexius26
Yeah !!!!!!!!!
Posté le 23-05-2006 à 12:26:11  profilanswer
 

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:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[résolu] SSL, Certificat, & bad_record_mac[Javascript] Problèmes de tirets [Résolu]
[Résolu] Pb sql / phpcase à cocher et champ ENUM(table) [RESOLU]
Fonction indépendantes en java du DC[resolu] telecharger flash
[Résolu]Rectangle de sélection (div) s'affichant sous FF mais pas IE[résolu] demande traduction francais-->php (trois lignes SIMPLES)
Plus de sujets relatifs à : [RESOLU] [VB] Appel d'une fonction sur sélection d'une case


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR