Affichage msgbox ou usf

Le
danielos
Bonjour à toutes et à tous,

J'utilise une macro qui permet d'ouvrir un classeur excel à partir de
word en vue d'importer une partie d'une feuille pour en faire un tableau =

dans word (au passage le comptage fonctionne nickel ;-)).
L'ouverture d'excel et l'importation fonctionne très bien mais j'aurai =

voulu que l'utilisateur puisse s'assurer avant qu el'importationne se
fase que c'est bien la bonne feuille qui est active dans le fichier excel=
.
Bien évidement, je ne maitrise pas le nom de la feuille qui comporte le=
s
données à importer et je ne sais pas sur quelle page était l'utilis=
ateur
lorsqu'il a enregistré la dernière fois son classeur excel !

Je pensais donc après l'ouverture du fichier excel et son affichage,
afficher une msgbox qui permettrait à l'utilisateur d'avoir la
possibilité de sélectionner la bonne feuille.

Une msgbox me semblait toute indiquée
Le pb c'est que la msgbox s'affiche soit derrière excel (sans
vbMsgBoxSetForeground) et là l'utilisateur ne la voit pas, soit (avec
vbMsgBoxSetForeground) elle vient en premier plan à l'écran mais en
ayant activé word avant. De ce fait, l'utilisateur n'a plus le classeur=

excel juste derrière la msgbox.

Ce que j'aurai souhaité c'est que la msg box s'affiche devant la fenê=
tre
excel.

J'ai aussi essayé de passer par un usf mais c'est du pareil au même q=
ue
la msgbox.

Auriez-vous une piste ?

Ci-dessous le code utilisé.
Merci d'avance
Daniel

Sub ouvrir_excel()

Dim finput As FileDialog
Dim chemin As String

On Error GoTo rien

Set finput = Excel.Application.FileDialog(msoFileDialogOpen)
finput.Show

chemin = finput.SelectedItems(1)

Set exl = CreateObject("excel.application")
exl.Workbooks.Open (chemin)
exl.Visible = True
Range("A1").Select 'c'est seulement pour mettre excel à l'écran=
et
pas seulement l'avoir en onglet

' MsgBox (" Merci de vérifier que c'est bien la feuille avec
l'effectif qui est affichée à l'écran puis cliquez sur OK "),
vbMsgBoxSetForeground

' UserForm1.Show

rien:
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #26368910
Bonjour

... soit (avec vbMsgBoxSetForeground) elle vient en
premier plan à l'écran mais en ayant activé word avant. De ce fait, l'utilisateur n'a
plus le classeur excel juste derrière la msgbox.



Vous mettez word invisible avant l'affichage du msgbox et vous le
remettez visible après ?
Daniel
Le #26369067
Bonjour,

Non je ne mettais pas word en invisible. C'est nettement mieux en
faisant ainsi !
Merci pour le truc.
Par contre ça ne fonctionne qu'avec un msgbox et pas avec un userform.



Geo a écrit :
Bonjour

... soit (avec vbMsgBoxSetForeground) elle vient en premier plan à
l'écran mais en ayant activé word avant. De ce fait, l'utilisateur n'a
plus le classeur excel juste derrière la msgbox.



Vous mettez word invisible avant l'affichage du msgbox et vous le
remettez visible après ?
Geo
Le #26369086
Bonsoir

Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
danielos
Le #26369164
Bonjour,

Bien sûr, voici mes codes

Sub ouvrir_excel()
Dim finput As FileDialog
Dim chemin As String
Dim WordApp As Word.Application

On Error GoTo rien

Set finput = Excel.Application.FileDialog(msoFileDialogOpen)
finput.Show

chemin = finput.SelectedItems(1)

Set exl = CreateObject("excel.application")
exl.Workbooks.Open (chemin)
exl.Visible = True
Range("A1").Select

' Masque word pour que l'USF soit devant le classeur excel
Set WordApp = Word.Application
WordApp.Visible = False

UserForm1.Show

rien:
End Sub

et le code de l'USF

Private Sub UserForm_Initialize()
Dim i As Integer
With ActiveWorkbook
For i = 1 To ThisWorkbook.Sheets.Count
ComboBox1.AddItem (ThisWorkbook.Sheets(i).Name)
Next i
End With
End Sub

Private Sub UserForm_Click()
Call importation
UserForm1.Hide
End Sub


Word est remis en visible dans la macro importation bien que l'USF soit
en mode Modal. C'est vrai que je pourrai le remettre dans la fin de la
macro ouvrir_excel().

Merci en tout cas de votre gentillesse pour cette attention.

Daniel





Geo a écrit :
Bonsoir

Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
danielos
Le #26369393
Bonjour,

Quelques corrections apportées mais j'ai toujours le souci suivant:
lorsque la msgbox est activée, elle est bien devant le fichier excel qu e
l'on a ouvert et après ok, le userform est aussi devant. Par contre si
je retire l'affichage de la msgbox, le userform s'affiche derrière le
classeur.

Sub ouvrir_excel()

Dim finput As FileDialog
Dim chemin As String
Dim WordApp As Word.Application

On Error GoTo rien

Set finput = Excel.Application.FileDialog(msoFileDialogOpen)
finput.Show

chemin = finput.SelectedItems(1)

Set exl = CreateObject("excel.application")
exl.Workbooks.Open (chemin)
exl.Visible = True
Range("A1").Select

' Masque word pour avoir le classeur au 1er plan
Set WordApp = Word.Application
WordApp.Visible = False

' MsgBox (" Vérifiez que c'est bien la feuille avec l'effectif qui
est affichée à l'écran" & Chr(10)), vbMsgBoxSetForeground

UserForm1.Show

rien:

End Sub

********************
les codes du userform :

Private Sub UserForm_Initialize()
Dim i As Integer

With ActiveWorkbook

For i = 1 To Sheets.Count
Me.ListBox1.AddItem (Sheets(i).Name)
Next i

End With

End Sub

Private Sub CommandButton1_Click()

feuil = Me.ListBox1
Sheets(feuil).Select

Call importation
UserForm1.Hide
End Sub




Geo a écrit :
Bonsoir

Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
Geo
Le #26369591
Bonjour

Désolé pour cette interruption de l'image.

Le mieux serait de trouver comment forcer l'affichage, peut-être en
utilisant qqch comme activer la fenêtre de la bonne appli.
Sinon, un truc à essayer : mettre la userform dans excel et non word ?

Pour des questions pointues Excel, il vaudrait mieux aller sur un forum
Answers de Microsoft.
danielos
Le #26369593
Bonjour Géo,

Pour la solution de mettre le code dans excel, c'est sûr que cela aurai t
été mieux mais je ne connais pas au départ le classeur que l'utilis ateur
ouvrira et l'idée de forcer l'écriture d'un code dans le classeur ne me
plait qu'à moitié car il faut activer les références.. bon ça o k, mais
aussi forcer l'installation de la macro pour ne pas être tributaire
d'une action de l'utilisateur et ça, c'est moins sympathique.
J'ai effectivement posté aussi sur le forum excel car ma manip d'ouvrir
excel à partir d eword pourrait être l'inverse et les USF sont plus
souvent utilisés dans les classeurs.
En tout cas merci de ton attention.
Au plaisir.

Daniel


Geo a écrit :
Bonjour

Désolé pour cette interruption de l'image.

Le mieux serait de trouver comment forcer l'affichage, peut-être en
utilisant qqch comme activer la fenêtre de la bonne appli.
Sinon, un truc à essayer : mettre la userform dans excel et non word ?

Pour des questions pointues Excel, il vaudrait mieux aller sur un forum
Answers de Microsoft.
Publicité
Poster une réponse
Anonyme