Application Active info sur...en vba

xavier44

XLDnaute Nouveau
Bonsoir,
Est-il possible et comment récupérer en vba le status d'un classeur/sheet excel ouvert lorsque l'on click sur la zone de titre d'une feuille. La zone ou est indiqué "Microsoft Excel........" et ou se trouve les boutons fermé et réduire.
Mon appli ouvre IE (IE prend le focus) puis l'utilisateur revient sur excel en cliquant sur la zone de titre et je voudrais fermer IE avec cet évenement.
Actuellement je ferme IE lorsqu'un bouton est pressé, le pb est que le passage par ce bouton n'est pas compulsif.
Merci de votre aide
 

xavier44

XLDnaute Nouveau
Re : Application Active info sur...en vba

Bonsoir , les events de workbook ne se déclenche pas avec un click sur la zone de titre.
voici le code actuellement:
Sub PageWeb() 'Ouvre IE avec un bouton
'Dim IE As Object déclarée en public
Dim i As Integer, texte As String, StrCol As String
NotReqResume = False
texte = ""
If ActiveCell.Column = 1 Then
texte = Cells(ActiveCell.Row, 2) & " " & Cells(ActiveCell.Row, 1)
Else
texte = Cells(ActiveCell.Row, 3) & " " & Cells(ActiveCell.Row, 2) & " " & Cells(ActiveCell.Row, 1)
End If
On Error Resume Next
Set IE = CreateObject("internetexplorer.application")
IE.Navigate Worksheets(NomAnex).Range("g1") '("http://www.amazon.fr/")
IE.Visible = True: IE.Top = 0: IE.Left = 150
Application.Wait Now + Worksheets(NomAnex).Range("g4") / 3600 / 24
For i = 1 To Worksheets(NomAnex).Range("g2")
SendKeys "{TAB}"
Next
SendKeys (texte)
For i = 1 To Worksheets(NomAnex).Range("g3") - Worksheets(NomAnex).Range("g2")
SendKeys "{TAB}"
Next
SendKeys (texte)
SendKeys "{ENTER}"
Application.Wait Now + 2 / 3600 / 24
'Set IE = Nothing
End Sub

Sub ColleResume() 'Colle un texte dans le pp dans une cell et ferme IE
'Dim IE As Object
Dim montexte As String, c As Range, i As Integer, mActuelleRow As Integer
If NotReqResume Then Exit Sub
NotReqResume = True
Application.EnableEvents = False
'On Error Resume Next
'Set IE = GetObject("internetexplorer")
IE.Quit
Set IE = Nothing
mActuelleRow = Actuellerow
Cells(3, 26).Select
On Error GoTo ppvide
ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False
i = 0
For Each c In Selection
If ActiveCell.Offset(i, 0) <> "" Then
montexte = montexte & c.Value & " "
End If
i = i + 1
Next c
Selection.ClearContents
Cells(mActuelleRow, 21).Activate
ActiveCell.WrapText = False
ActiveCell.Value = montexte
Cells(mActuelleRow, 3).Select
IniUFLivre
Application.EnableEvents = True
Exit Sub
ppvide:
Cells(mActuelleRow, 3).Select
i = MsgBox(" Le presse papier est vide")
End Sub
Je suppute qu'il faille passer par une API Windows mais là ça me dépasse.
Une solution ?
Merci de votre aide
 

eriiic

XLDnaute Barbatruc
Re : Application Active info sur...en vba

Bonjour,

Juste une suggestion, et si tu le fermais par l'evenement Workbook_SheetSelectionChange ?
En plus tu leur laisses une chance de retourner dans IE s'ils ne touchent rien dans excel... ;-)

eric
 

xavier44

XLDnaute Nouveau
Re : Application Active info sur...en vba

Bonjour
Non ce n'est pas possible car rien ne me dit que la sélection ne changera pas (l'utilisateur va cliquer dans une cell au hasard).
Il faut comprendre l'appli présente simultanément un tableau et un UF synchronisé sur une ligne du tableau et je ne veux pas perdre le focus de cette ligne pour faire le collage de texte venant de IE.
Fichier Free - Envoyez vos documents
Il faut savoir que cette appli qui est pour moi un exercice qui n'aurait jamais vu le jour sous cette forme sans XLD et les tutoriaux de Thiérry,Michel et les autres. Merci à eux.
 

eriiic

XLDnaute Barbatruc
Re : Application Active info sur...en vba

Re,

J'ai regardé un peu ton fichier, c'est joli mais je ne suis po content
Je n'ai plus le menu contextuel d'origine, juste copier/coller en gros !!!

Une petite routine pour ceux à qui c'est arrivé :
Sub resetContextuel()
Application.CommandBars("Cell").Reset
End Sub
et si tu pouvais ajouter cette ligne dans Workbook_BeforeClose et dans Workbook_Deactivate par exemple.

Et puis si on pouvait fermer ton appli sans fermer tout excel ce serait top ;-)

Ceci dit je trouve ton interface très bien réalisée, ça fait pro :)

eric
 

xavier44

XLDnaute Nouveau
Re : Application Active info sur...en vba

Bonsoir à tous
Eric merci pour le comp.
Je n'ai pas ce pb de perte de l'environnement a la fremeture du classeur.

Private Sub Workbook_Deactivate()
Dim bar As CommandBar
With Application
.Caption = Empty
.DisplayFormulaBar = True
.DisplayStatusBar = True
Call DeleteMenu
For Each bar In .CommandBars
If bar.Name = "Outils Bibliothèque" Or bar.Name = "Outils Déplacement" Then
bar.Delete
Else
bar.Enabled = True
End If
Next
.CommandBars("Standard").Visible = True
.CommandBars("Formatting").Visible = True
.CommandBars("Worksheet Menu Bar").Visible = True
End With
End Sub

Je souhaite vraiment avoir une réponse au sujet de l'évenement cité plus haut. Il y des Cador sur ce Forum...svp merci
 

Discussions similaires

Réponses
8
Affichages
257

Statistiques des forums

Discussions
312 749
Messages
2 091 645
Membres
105 010
dernier inscrit
sam333