J'utilise une macro qui permet d'ouvrir un classeur excel =E0 partir de=20
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=E8s bien mais j'aurai =
voulu que l'utilisateur puisse s'assurer avant qu el'importationne se=20
fase que c'est bien la bonne feuille qui est active dans le fichier excel=
=2E
Bien =E9videment, je ne maitrise pas le nom de la feuille qui comporte le=
s=20
donn=E9es =E0 importer et je ne sais pas sur quelle page =E9tait l'utilis=
ateur=20
lorsqu'il a enregistr=E9 la derni=E8re fois son classeur excel !
Je pensais donc apr=E8s l'ouverture du fichier excel et son affichage,=20
afficher une msgbox qui permettrait =E0 l'utilisateur d'avoir la=20
possibilit=E9 de s=E9lectionner la bonne feuille.
Une msgbox me semblait toute indiqu=E9e...
Le pb c'est que la msgbox s'affiche soit derri=E8re excel (sans=20
vbMsgBoxSetForeground) et l=E0 l'utilisateur ne la voit pas, soit (avec=20
vbMsgBoxSetForeground) elle vient en premier plan =E0 l'=E9cran mais en=20
ayant activ=E9 word avant. De ce fait, l'utilisateur n'a plus le classeur=
=20
excel juste derri=E8re la msgbox.
Ce que j'aurai souhait=E9 c'est que la msg box s'affiche devant la fen=EA=
tre=20
excel.
J'ai aussi essay=E9 de passer par un usf mais c'est du pareil au m=EAme q=
ue=20
la msgbox.
Auriez-vous une piste ?
Ci-dessous le code utilis=E9.
Merci d'avance
Daniel
Sub ouvrir_excel()
Dim finput As FileDialog
Dim chemin As String
On Error GoTo rien
Set finput =3D Excel.Application.FileDialog(msoFileDialogOpen)
finput.Show
chemin =3D finput.SelectedItems(1)
Set exl =3D CreateObject("excel.application")
exl.Workbooks.Open (chemin)
exl.Visible =3D True
Range("A1").Select 'c'est seulement pour mettre excel =E0 l'=E9cran=
et=20
pas seulement l'avoir en onglet
' MsgBox (" Merci de v=E9rifier que c'est bien la feuille avec=20
l'effectif qui est affich=E9e =E0 l'=E9cran puis cliquez sur OK "),=20
vbMsgBoxSetForeground
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Geo
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 ?
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 ?
... 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
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 ?
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 ?
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
Bonsoir
Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
Bonsoir
Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
Il n'y a pas de raison, vous pouvez mettre l'extrait de code ?
danielos
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 ?
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 ?
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
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 ?
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 ?
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
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.
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.
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
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.
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.
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.