Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

limio

4 réponses
Avatar
AB
Bonjour à tous,
Le code suivant (merci à François Forcet et Frédéric Sigonnaud pour leur
aide) permet, lorsque je clique sur une cellule, d'aller chercher le fichier
dont le chemin figure dans la dite cellule, et de l'ouvrir dans Word.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
On Error GoTo 100
Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
froSet WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End Sub

Ce que je voudrais :
1/ lorsque j'ouvre le classeur, et que je clique sur une cellule, Word
s'ouvre au premier plan et m'affiche le fichier. Mais si je retourne dans
Excel, et que je clique sur une autre cellule, le programme va chercher le
bon fichier, l'ouvre bien dans Word, mais c'est Excel qui reste au premier
plan. Je voudrais que Word repasse au premier plan.
2/ la macro fonctionne pour n'importe quelle cellule du classeur. Je
voudrais qu'elle ne fonctionne que pour les cellules de la colonne D, dans
toutes les feuilles (il y en a 22)

Possible ?
Merci !
AB

4 réponses

Avatar
francois.forcet
On 19 fév, 14:30, "AB" wrote:
Bonjour à tous,
Le code suivant (merci à François Forcet et Frédéric Sigonnaud pou r leur
aide) permet, lorsque je clique sur une cellule, d'aller chercher le fichi er
dont le chemin figure dans la dite cellule, et de l'ouvrir dans Word.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
On Error GoTo 100
    Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
froSet WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End Sub

Ce que je voudrais :
1/ lorsque j'ouvre le classeur, et que je clique sur une cellule, Word
s'ouvre au premier plan et m'affiche le fichier. Mais si je retourne dans
Excel, et que je clique sur une autre cellule, le programme va chercher le
bon fichier, l'ouvre bien dans Word, mais c'est Excel qui reste au premier
plan. Je voudrais que Word repasse au premier plan.
2/ la macro fonctionne pour n'importe quelle cellule du classeur. Je
voudrais qu'elle ne fonctionne que pour les cellules de la colonne D, dans
toutes les feuilles (il y en a 22)

Possible ?
Merci !
AB


Salut AB

Lors de notre échange sur le sujet tu m'avais exprimé ce souhait et je
t'avais fais cette proposition :

On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With

Elle consiste comme je te l'avais expliqué à rechercher une
application Word éventuellement ouverte pour la fermer
Puis de réouvrir l'application qui a pour effet de t'afficher le
document Word à l'écran

Celà devrait te convenir j'espère

Pour les cellules de la colonne D

Rajoute dans ton code ces lignes :

If Target .column = 4 Then
Le code
End If

Ce qui donne :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target
As Range)
If Target .column = 4 Then
On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End If
End Sub


j'espère t'avoir satisfait

Dis moi !!!!

Avatar
ctac
Bonjour,

oWdApp.Activate

ctac
Avatar
Frédéric Sigonneau
' Quelle instruction ici pour mettre Word au premier plan ??????????


Essaye :

Application.WindowState = xlMinimized

FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Hello François !
Merci de m'aider.
Je n'avais pas retenu entièrement ta proposition, car elle a l'inconvénient d'allonger très sensiblement le temps de réaction (fermeture puis réouverture de Word).
Le code suivant me convient très bien, car il ne nécessite pas de fermer puis réouvrir Word. C'est donc très rapide.
Il manque juste de mettre Word au 1er plan.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 4 Then
On Error GoTo 100
Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
Set WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
' Quelle instruction ici pour mettre Word au premier plan ??????????
End With
End If
End Sub




a écrit dans le message de news:
On 19 fév, 14:30, "AB" wrote:
Bonjour à tous,
Le code suivant (merci à François Forcet et Frédéric Sigonnaud pour leur
aide) permet, lorsque je clique sur une cellule, d'aller chercher le fichier
dont le chemin figure dans la dite cellule, et de l'ouvrir dans Word.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
On Error GoTo 100
Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
froSet WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End Sub

Ce que je voudrais :
1/ lorsque j'ouvre le classeur, et que je clique sur une cellule, Word
s'ouvre au premier plan et m'affiche le fichier. Mais si je retourne dans
Excel, et que je clique sur une autre cellule, le programme va chercher le
bon fichier, l'ouvre bien dans Word, mais c'est Excel qui reste au premier
plan. Je voudrais que Word repasse au premier plan.
2/ la macro fonctionne pour n'importe quelle cellule du classeur. Je
voudrais qu'elle ne fonctionne que pour les cellules de la colonne D, dans
toutes les feuilles (il y en a 22)

Possible ?
Merci !
AB


Salut AB

Lors de notre échange sur le sujet tu m'avais exprimé ce souhait et je
t'avais fais cette proposition :

On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With

Elle consiste comme je te l'avais expliqué à rechercher une
application Word éventuellement ouverte pour la fermer
Puis de réouvrir l'application qui a pour effet de t'afficher le
document Word à l'écran

Celà devrait te convenir j'espère

Pour les cellules de la colonne D

Rajoute dans ton code ces lignes :

If Target .column = 4 Then
Le code
End If

Ce qui donne :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target
As Range)
If Target .column = 4 Then
On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End If
End Sub


j'espère t'avoir satisfait

Dis moi !!!!



Avatar
AB
Bonsoir à tous les deux,
Frédéric, j'ai changé Application.WindowState = xlMinimized par
Application.WindowState = xlMaximized, car j'ai supposé que c'est ce que tu
voulais dire.
Mais ça ne marche pas.
En revanche, oWdApp.Activate marche très bien.
Merci donc à tous les deux de votre aide.
Bonne...nuit (pas vu l'heure !)
André


"Frédéric Sigonneau" a écrit dans le message de news:

' Quelle instruction ici pour mettre Word au premier plan ??????????


Essaye :

Application.WindowState = xlMinimized

FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Hello François !
Merci de m'aider.
Je n'avais pas retenu entièrement ta proposition, car elle a
l'inconvénient d'allonger très sensiblement le temps de réaction
(fermeture puis réouverture de Word).
Le code suivant me convient très bien, car il ne nécessite pas de fermer
puis réouvrir Word. C'est donc très rapide.
Il manque juste de mettre Word au 1er plan.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
If Target.Column = 4 Then
On Error GoTo 100
Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
Set WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
' Quelle instruction ici pour mettre Word au premier plan ??????????
End With
End If
End Sub




a écrit dans le message de news:

On 19 fév, 14:30, "AB" wrote:
Bonjour à tous,
Le code suivant (merci à François Forcet et Frédéric Sigonnaud pour leur
aide) permet, lorsque je clique sur une cellule, d'aller chercher le
fichier
dont le chemin figure dans la dite cellule, et de l'ouvrir dans Word.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target
As Range)
On Error GoTo 100
Set oWdApp = GetObject(, "Word.Application")
100
If Err.Number <> 0 Then
Set oWdApp = CreateObject("Word.Application")
End If
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
froSet WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End Sub

Ce que je voudrais :
1/ lorsque j'ouvre le classeur, et que je clique sur une cellule, Word
s'ouvre au premier plan et m'affiche le fichier. Mais si je retourne
dans
Excel, et que je clique sur une autre cellule, le programme va chercher
le
bon fichier, l'ouvre bien dans Word, mais c'est Excel qui reste au
premier
plan. Je voudrais que Word repasse au premier plan.
2/ la macro fonctionne pour n'importe quelle cellule du classeur. Je
voudrais qu'elle ne fonctionne que pour les cellules de la colonne D,
dans
toutes les feuilles (il y en a 22)

Possible ?
Merci !
AB


Salut AB

Lors de notre échange sur le sujet tu m'avais exprimé ce souhait et je
t'avais fais cette proposition :

On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With

Elle consiste comme je te l'avais expliqué à rechercher une
application Word éventuellement ouverte pour la fermer
Puis de réouvrir l'application qui a pour effet de t'afficher le
document Word à l'écran

Celà devrait te convenir j'espère

Pour les cellules de la colonne D

Rajoute dans ton code ces lignes :

If Target .column = 4 Then
Le code
End If

Ce qui donne :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target
As Range)
If Target .column = 4 Then
On Error Resume Next
Set oWdApp = GetObject(, "Word.Application")
oWdApp.Close
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
..Visible = True
'Ouvrir le document Word
WordDoc = oWdApp.Documents.Open(ActiveCell.Value)
End With
End If
End Sub


j'espère t'avoir satisfait

Dis moi !!!!