OVH Cloud OVH Cloud

vba - commentaires, senKeys, affichage, etc

36 réponses
Avatar
j-pascal
Bonsoir,

Je crains que vous me repprochiez de poser plusieurs questions dans un
seul fil ...

http://cjoint.com/?lCuV0qYIzu

Pour une raison que j'ignore, le code suivant ne supprime pas le(s)
commentaire(s) (cf. bas de ce présent message) :

'----------------------
For decalage = 1 To 10
With Target.Offset(0, decalage)
.ClearContents
.ClearComments
End With
Next
'----------------------



Pourquoi, dans ce qui suit, la petite flèche du menu déroulant
s'affiche, mais la liste ne se déroule pas "automatiquement" ?

'----------------------
Private Sub Recherche2_Click()
[j1].Select
SendKeys "%{Down}"
End Sub
'----------------------



J'imagine qu'on peut optimiser ce bout de code :

'---------------------
If [f1] = "" Then
Recherche1.Visible = True
Else
Recherche1.Visible = False
End If
'---------------------


Questions subsidiaires :

1 - (un double-clic sur un numéro de la colonne A est censé supprimer
les valeurs de la ligne correspondante + les commentaires !)

Pourquoi les commentaires ne disparaissent pas ?


2 - Quand une cellule est sélectionnée, le "cadre noir" n'apparaît pas
toujours, ce qui peut destabiliser l'utilisateur. Ceci est
particulièrement visible dans l'onglet n°1 "réf." J'ai essayé avec
"Application.EnableEvents = True" ou "DoEvents", en vain ...


3 - Dans l'onglet n°1 (cellules "I1:N2", aurais-je pu intégrer la
formule de tri dans la colonne des données elle-même ?


Merci pour votre aide,

JP

6 réponses

1 2 3 4
Avatar
Daniel.C
OK. Telle que j'ai interprété ta phrase "Ca fonctionne ?? Oui, pour
cette page, mais pas pour l'onglet "Réf." ", je l'ai comprise comme un
problème de commentaire puisque le ça fonctionne y faisait référence et
que tu as ouvert un nouveau fil sur l'autre sujet.
Daniel

??? Mais ai-je dit qu'il y avait des commentaires dans ce module ?

Le commentaire s'inscrit par double-clic effectué sur les cellules de la
colonne B de la feuille "départ-arrivée" et le code (un bout !) est le
suivant :

'----
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

If (Target.Row > 2 And Target.Row < 2000) And Target.Column = 1 Then
'And Target.Column < 12

RéponseEffacement = MsgBox("Voulez-vous vraiment supprimer la ligne ?",
vbYesNo)
If RéponseEffacement = vbNo Then
Target.Offset(0, 1).Select
End
Else
If Target.Column = 1 And Not Target.Offset(0, 1).Locked Then
'correspond à la colonne "A"
For decalage = 1 To 10
With Target.Offset(0, decalage)
.ClearContents
.ClearComments
End With
Next
[g3].End(xlDown).Offset(1, -5).Select
End If
End If
End If
Cancel = True
'----

A la 8ème ligne en partant du bas, il y a bien ce que tu cherches, ?!

JP

PS : si tu as toujours eu accès au code (ce dont ne n'ai jamais douté !)
pourquoi pouvais-tu craindre d'ouvrir le classeur après avoir observé le
contenu des macros ? J'imagine qu'à partir de là, on doit pouvoir se rendre
compte qu'il n'y a rien de nuisible à l'environnement d'Excel ...

J'ai toujours pu accéder au code. Ou j'ai mal regardé, ou il n'y a pas de
commande "clearcomments" dans le module "réf.".
Daniel

Soit !

Ici tu peux ouvrir le classeur et accéder au code sans activer les macros :
http://cjoint.com/?lDwx2wmcY6

JP

Je pense que tu ne risques rien avec mon classeur, mais bon ...



1. Seuls ceux qui ont fait confiance se sont fait escroquer.
2. "La confiance, c'est bien, le contrôle, c'est mieux" (Lénine)
;-)))
Daniel



Ceci dit, la malveillance, je n'ai jamais rencontré, mais les classeurs
qui te massacrent ton environnement, oui. Barres d'outils supprimées,
ascenseurs disparus, passage au calcul manuel, ça arrive quand même trop
souvent.
Daniel








Avatar
Daniel.C
J'ai du mal à m'expliquer, ce soir. Je parle de la différence entre la
macro Workbook_Open dans thisworkbook et la macro auto_open dans un
module standard. Si un classeur possède ces deux macros et si je
l'ouvre avec du code VBA, la première macro s'exécutera et pas la
seconde.
Daniel

La différence est minime, si j'ouvre ton classeur avec une macro, seule la
macro Workbook_Open s'xécutera, pas la macro auto_open.
Daniel

Re,

Ca y est, c'est modifié !

Merci

JP

Bonsoir,

Parce qu'il agit le premier !

@+






Avatar
Daniel.C
C'est la réponse à ta phrase :
"Ici tu peux ouvrir le classeur et accéder au code sans activer les
macros"
Simplement.


PS : si tu as toujours eu accès au code (ce dont ne n'ai jamais douté !)
pourquoi pouvais-tu craindre d'ouvrir le classeur après avoir observé le
contenu des macros ?



C'est la réponse à ta phrase :
"Ici tu peux ouvrir le classeur et accéder au code sans activer les
macros"
Simplement.

J'imagine qu'à partir de là, on doit pouvoir se rendre
compte qu'il n'y a rien de nuisible à l'environnement d'Excel ...



Je n'ai pas décortiqué le code, jai renommé la macro. Voila.
Daniel
Avatar
j-pascal
Non, non, c'est moi qui ai du mal à comprendre.

".. si je l'ouvre avec du code VBA .."
Tu veux dire si tu l'ouvres à partir d'un autre classeur, via une macro
? Pour moi (néophyte !) ouvrir avec du code VBA, signifierait plutôt
"ouvrir le classeur en activant les macros".

Ne te sens pas contraint de répondre à cela, car j'ai un peu honte
d'avoir l'impression de te faire perdre un temps précieux !

JP

J'ai du mal à m'expliquer, ce soir. Je parle de la différence entre la macro
Workbook_Open dans thisworkbook et la macro auto_open dans un module
standard. Si un classeur possède ces deux macros et si je l'ouvre avec du
code VBA, la première macro s'exécutera et pas la seconde.
Daniel

La différence est minime, si j'ouvre ton classeur avec une macro, seule la
macro Workbook_Open s'xécutera, pas la macro auto_open.
Daniel

Re,

Ca y est, c'est modifié !

Merci

JP

Bonsoir,

Parce qu'il agit le premier !

@+








Avatar
Daniel.C
> Tu veux dire si tu l'ouvres à partir d'un autre classeur, via une macro ?



Oui

Pour moi (néophyte !) ouvrir avec du code VBA, signifierait plutôt "ouvrir le
classeur en activant les macros".



On pourrait effectivement le comprendre comme ça. Il était tard...
Daniel
Avatar
j-pascal
Ok, je note cette subtilité. Merci.
A bientôt,
JP

Tu veux dire si tu l'ouvres à partir d'un autre classeur, via une macro ?



Oui

Pour moi (néophyte !) ouvrir avec du code VBA, signifierait plutôt "ouvrir
le classeur en activant les macros".



On pourrait effectivement le comprendre comme ça. Il était tard...
Daniel


1 2 3 4