popup conditionel et par "click"

shinji7800

XLDnaute Nouveau
Bonjour à tous

relativement débutant en ce qui concerne Excel et VBA de manière générale, j'ai pour mission de créer un document de suivi afin de réaliser des actions journalières.

c'est à dire un document avec des intitulés (expliquant ce qu'il faut faire), avec à coté un liens vers un document pdf ou word expliquant de manière détaillée les actions a réaliser.

si le test est est "OK", l'utilisateur peut renseigner une case prévue à cet effet, sinon il précise que le test est "NOK".

si le test est "NOK" un nouveau lien apparait (et c'est à ce moment que je vais avoir besoin de votre aide, j'en parlerai un peu plus tard), expliquant comment palier au problème.

mon soucis est que pour certaine démarche, il n'existe pas de documents, donc j'aimerai pour certain intitulé et sous certaines condition (par exemple l'utilisateur a renseigné le champ "NOK") faire apparaitre un liens sur lequel l'on pourrait faire apparaitre un popup avec un message explicatif.


j'espère avoir été assez clair. dans le cas contraire je m'en excuse d'avance.


j'attends vos remarques et idées (même si cela ne concerne pas mon souci de popup), toute les idées sont bonne a prendre pour faire évoluer mon projet.


d'avance merci


cordialement.
 

Pièces jointes

  • Action_.zip
    19.3 KB · Affichages: 47

shinji7800

XLDnaute Nouveau
Re : popup conditionel et par "click"

j'ai peut être trouvé une piste ce que je pense être une annotation.

j'ai trouvé un fichier excel avec une partie de la solution (comme le témoigne l'image jointe)

ce n'est pas un commentaire, c'est une fonction différente. le seul moyen que j'ai trouvé pour l'utiliser c'est regarder dans le "script editor" j'ai trouvé les lignes de commande suivante.

<x:Range>A1</x:Range>
<x:InputTitle>essai</x:InputTitle>
<x:InputMessage> Vérifier les configurations concernées et contacter les régions (l'utilisateur qui modifié la conf)</x:InputMessage>

auriez vous des pistes ?
 

Pièces jointes

  • annotation.JPG
    annotation.JPG
    21 KB · Affichages: 76

Gorfael

XLDnaute Barbatruc
Re : popup conditionel et par "click"

Salut shinji7800 et le forum
Pas sûr de savoir ce que tu veux faire.
Je suppose qu'au remplissage des colonnes I de tes deux feuilles, si la réponse est NOK, tu dois effectuer une action. Pour ça, c'est relativement facile :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
If Intersect(Target, Range("I:I")) Is Nothing Then Exit Sub
'Si ça ne concerne pas la colonne I, on sort
For Each Cel In Intersect(Target, Columns(9))
'Pour chaque cellule de I modifiée
    If Cel = "NOK" Then
        'le travail à faire pour la cellule qui vient d'être
        'modifiée en NOK
    End If
Next Cel
'Cellule suivante
End Sub
Dans le module lié à la feuille. Petite précision : si la cellule est déjà à NOK, le fait de passer en mode édition (<F2> ou double-click) déclenchera la macro à la validation.

Pour le reste, essaie une macro apprentissage (Outils>>Macro>>Nouvelle macro) et fais ton action manuellement. Tu n'auras qu'à regarder le code donné à l'arrêt de la macro et à l'adapter.
A+
 

shinji7800

XLDnaute Nouveau
Re : popup conditionel et par "click"

Salut Gorfael, merci pour ta réponse

je suis soulagé que quelqu'un réponde enfin a mon message. Je viens de me faire jeter sur un grand forum d'entraide informatique, car selon le modo le forum n'est pas fait pour que les bénévoles fasse le projets des gens qui viennent demander de l'aide.

Or je tiens à préciser que je ne viens pas demander de l'aide pour que quelqu'un me fasse mon projet. Mais bien parce que j'ai un point bloquant à mon projet et je cherche de pistes pour pouvoir y arriver.

maintenant que le choses sont clarifiée (j'en avait besoin, ça fait du bien :D)


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
donc je pense que c'est ce qui me manquait pour que la macro contrôle tout le temps l'état de ma feuille

merci à toi !


cependant je pense qu'il y a un malentendu sur ce que je recherche (bien que ton aide ma fait avancé d'un grand pas)


je cherche pour certaine cellule (les case blanche en colonne I), a affiché un popup

au début je me suis orienté vers une macro afin d'afficher un message via une "msgbox".

en continuant mes recherche je suis tombé sur un fichier excel qui servait d'exemple à un autre problème. et l'on peu y apercevoir ce que je définie comme une "annotation" ( qui est différent du commentaire classique sous excel).

cf. le .jpg en pièce jointe de mon second poste.

si l'on clique sur A1 un petit encadré apparait ce qui répond parfaitement à mon besoin


j'ai cherché partout dans excel et je n'ai pas su le reproduire ce n'est même pas une macro (et malheureusement la personne n'explique pas comment il a procédé)

par contre si l'on regarde le script du .xls (trouvé sur un forum d'entraide) l'on trouve les commande suivante :

Code:
<x:Range>A1</x:Range>
<x:InputTitle>essai</x:InputTitle>
<x:InputMessage> Vérifier les configurations concernées et contacter les régions (l'utilisateur qui modifié la conf)</x:InputMessage>


j'ai essayé de l'intégrer au code de mon .xls des fois cela fonctionne, mais la plus part du temps ça fait bugué ma page.

auriez vous des piste ?
 

Gorfael

XLDnaute Barbatruc
Re : popup conditionel et par "click"

Salut shinji7800 et le forum
Je viens de me faire jeter sur un grand forum d'entraide informatique, car selon le modo le forum n'est pas fait pour que les bénévoles fasse le projets des gens qui viennent demander de l'aide.
T'inquiète pas pour ça. Si c'est celui auquel je pense, certain modos devrait se demander quel est leur vrai but.
Il est vrai que les forums sont là pour aider. Mais des fois, quand tu ne sais même pas par où commencer...
Code:
<x:Range>A1</x:Range>
<x:InputTitle>essai</x:InputTitle>
<x:InputMessage> Vérifier les configurations concernées et contacter les régions (l'utilisateur qui modifié la conf)</x:InputMessage>
Je ne connais pas. ça me fait penser à du HTML, mais sans garantie. En tout cas, il me semble que ce n'est pas du code VBA.
Comme toi, je suis largué et je ne sais pas comment faire.

Pour mon code :
Code:
Intersect(Target, Range("I:I"))
Je recherche l'intersection entre Target, qui pour WorSheet_Change contient la plage de cellules étant passée en mode édition, et la colonne "I". C'est parce que je suis feignant, et que je ne sais pas si ton fichier d'essais correspond à celui final. C'est pour ça que je suis passé par Range, et pas par Columns.
Code:
Intersect(Target, Range("I5, I8, I50"))
Contiendra les cellules modifiées qui appartiennent à la plage I5, I8 et I50.
Pour ton cas, il faut que le range soit ou marqué en dur avec toutes les cellules de la feuille qui doivent faire répondre ta macro, ou calculé, ce qui pour ta première feuille nous donnes un code de ce style :
Code:
Dim X As Long, Plage As Range
'..........
'Calcul de la plage de réponse
Set Plage = Range("I9")
For X = 17 To 41 Step 4
    Set Plage = Union(Plage, Range("I" & X))
Next X
On pourrait le faire avec des string, mais comme en final, c'est pour utiliser en plage de cellules, autant le faire de suite.
Si tu regardes l'adresse de Plage après ce code, tu y trouveras bien toutes celles en blanc dans ta feuille (un ensemble de cellules fusionnées contient toujours sa valeur dans la cellule en haut à gauche).

Pour le reste, il faut voir ça avec le forum : il finira bien par en avoir un qui sache répondre, mais ça peut prendre du temps.
Peut-être avec l'aide, dans "Run" auras-tu une piste exploitable, mais comme je l'ai dit, ça dépasse mes compétences.

Dans les cas (rares), où je n'ai pas de solution, je vais dans les librairies et je cherche sur les bouquins d'informatique sur Excel. Je sais, je devrais l'acheter, mais pour une formule, ou une instruction, je n'ai pas envie de dépenser autre chose que mon temps. Surtout que la plupart du temps, les macros sont buggés, ou les instructions aussi claires que du charbon.
Et après, avec l'idée de ce que je dois chercher, je vais sur les forums.
A+
 

shinji7800

XLDnaute Nouveau
Re : popup conditionel et par "click"

Salut shinji7800 et le forumT'inquiète pas pour ça. Si c'est celui auquel je pense, certain modos devrait se demander quel est leur vrai but.
Il est vrai que les forums sont là pour aider. Mais des fois, quand tu ne sais même pas par où commencer...
Code:
<x:Range>A1</x:Range>
<x:InputTitle>essai</x:InputTitle>
<x:InputMessage> Vérifier les configurations concernées et contacter les régions (l'utilisateur qui modifié la conf)</x:InputMessage>
Je ne connais pas. ça me fait penser à du HTML, mais sans garantie. En tout cas, il me semble que ce n'est pas du code VBA.
Comme toi, je suis largué et je ne sais pas comment faire.

Pour mon code :
Code:
Intersect(Target, Range("I:I"))
Je recherche l'intersection entre Target, qui pour WorSheet_Change contient la plage de cellules étant passée en mode édition, et la colonne "I". C'est parce que je suis feignant, et que je ne sais pas si ton fichier d'essais correspond à celui final. C'est pour ça que je suis passé par Range, et pas par Columns.
Code:
Intersect(Target, Range("I5, I8, I50"))
Contiendra les cellules modifiées qui appartiennent à la plage I5, I8 et I50.
Pour ton cas, il faut que le range soit ou marqué en dur avec toutes les cellules de la feuille qui doivent faire répondre ta macro, ou calculé, ce qui pour ta première feuille nous donnes un code de ce style :
Code:
Dim X As Long, Plage As Range
'..........
'Calcul de la plage de réponse
Set Plage = Range("I9")
For X = 17 To 41 Step 4
    Set Plage = Union(Plage, Range("I" & X))
Next X
On pourrait le faire avec des string, mais comme en final, c'est pour utiliser en plage de cellules, autant le faire de suite.
Si tu regardes l'adresse de Plage après ce code, tu y trouveras bien toutes celles en blanc dans ta feuille (un ensemble de cellules fusionnées contient toujours sa valeur dans la cellule en haut à gauche).

Pour le reste, il faut voir ça avec le forum : il finira bien par en avoir un qui sache répondre, mais ça peut prendre du temps.
Peut-être avec l'aide, dans "Run" auras-tu une piste exploitable, mais comme je l'ai dit, ça dépasse mes compétences.

Dans les cas (rares), où je n'ai pas de solution, je vais dans les librairies et je cherche sur les bouquins d'informatique sur Excel. Je sais, je devrais l'acheter, mais pour une formule, ou une instruction, je n'ai pas envie de dépenser autre chose que mon temps. Surtout que la plupart du temps, les macros sont buggés, ou les instructions aussi claires que du charbon.
Et après, avec l'idée de ce que je dois chercher, je vais sur les forums.
A+


Merci pour cette réponse détaillée.

ton code est maintenant plus clair, et cela vas mettre d'un très grande utilité pour la suite de mon projet.

je vous tiens au courant si j'ai de nouvelles pistes en ce qui concerne les "annotations"


merci d'avoir pris le temps !

cordialement.
 

Statistiques des forums

Discussions
299 915
Messages
1 980 055
Membres
206 966
dernier inscrit
Diopk