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

Classeur qui se masque automatiquement??

17 réponses
Avatar
ElXav
Bonjour la communaut=E9,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier =E9tant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
Excel.Workbooks.OpenText Filename:=3DstrNomPlan2, origin:=3DxlWindows,
textqualifier:=3DxlTextQualifierNone, _
other:=3DTrue, otherchar:=3D";", local:=3DTrue
End Sub

Lorsque je double clic sur mon Class1 =E0 partir de l'explorateur, cela
fonctionne:
- Class1 s'ouvre
- Puis le fichier CSV s'ouvre correctement formatt=E9 dans un classeur

Je me suis cr=E9=E9 une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
- Class1 s'ouvre
- Le fichier CSV s'ouvre correctement formatt=E9 dans un classeur
- MAIS, Excel masque automatiquement ce dernier!!!!

En d=E9boggage, j'ajoute une instruction Stop juste apr=E8s le OpenText.
Si je continue le code en pas =E0 pas, le classeur reste visible.
Si je fais "Continuer", en =E9tant arr=EAt=E9 sur le Stop, le classeur se
ferme ??!!??

Des id=E9es?

Cordialement.

10 réponses

1 2
Avatar
MichDenis
Bonjour ElXav,

Essaie ceci :

Sub Ouvrir_Fichier_Texte()
Dim strNomPlan2 As String
strNomPlan2 = "C:UsersDMDocumentstext.txt"
Workbooks.OpenText Filename:=strNomPlan2, _
textqualifier:=xlTextQualifierNone, _
DataType:=xlDelimited, Tab:=True, _
other:=True, otherchar:=";", local:=True
End Sub




"ElXav" a écrit dans le message de groupe de discussion :

Bonjour la communauté,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows,
textqualifier:=xlTextQualifierNone, _
other:=True, otherchar:=";", local:=True
End Sub

Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
fonctionne:
- Class1 s'ouvre
- Puis le fichier CSV s'ouvre correctement formatté dans un classeur

Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
- Class1 s'ouvre
- Le fichier CSV s'ouvre correctement formatté dans un classeur
- MAIS, Excel masque automatiquement ce dernier!!!!

En déboggage, j'ajoute une instruction Stop juste après le OpenText.
Si je continue le code en pas à pas, le classeur reste visible.
Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
ferme ??!!??

Des idées?

Cordialement.
Avatar
ElXav
Bonjour,

Je ne vois pas où se situe la différence entre mon code, et votre
proposition, à part l'extension du fichier??
J'ai essayé, à tout hasard, avec votre commande, mais en conservant
l'extension d'origine du fichier (CSV).
Même symptôme...
Le classeur que je cherche à ouvrir se masque sans que je le lui
demande :-/

Répondez vous par rapport à mon soucis principal, qui est que le
fichier que j'ouvre par VBA se trouve masqué, une fois le code VBA
terminé.

Cordialement.

On 13 juil, 15:07, "MichDenis" wrote:
Bonjour ElXav,

Essaie ceci :

Sub Ouvrir_Fichier_Texte()
Dim strNomPlan2 As String
strNomPlan2 = "C:UsersDMDocumentstext.txt"
Workbooks.OpenText Filename:=strNomPlan2, _
    textqualifier:=xlTextQualifierNone, _
    DataType:=xlDelimited, Tab:=True, _
    other:=True, otherchar:=";", local:=True
End Sub

"ElXav" a écrit dans le message de groupe de discussion :

Bonjour la communauté,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
  Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
  Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows ,
textqualifier:=xlTextQualifierNone, _
                           other:=True, oth erchar:=";", local:=True
End Sub

Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
fonctionne:
  - Class1 s'ouvre
  - Puis le fichier CSV s'ouvre correctement formatté dans un classeu r

Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
  - Class1 s'ouvre
  - Le fichier CSV s'ouvre correctement formatté dans un classeur
  - MAIS, Excel masque automatiquement ce dernier!!!!

En déboggage, j'ajoute une instruction Stop juste après le OpenText.
Si je continue le code en pas à pas, le classeur reste visible.
Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
ferme ??!!??

Des idées?

Cordialement.


Avatar
MichDenis
L'exemple de code que je t'ai donné fonctionne bien
que l'extension du fichier soit csv ou .txt.

Le fichier s'ouvre dans la feuille active du classeur actif à l'écran.

Si ton environnement est différent, à toi de le spécifier.




"ElXav" a écrit dans le message de groupe de discussion :

Bonjour,

Je ne vois pas où se situe la différence entre mon code, et votre
proposition, à part l'extension du fichier??
J'ai essayé, à tout hasard, avec votre commande, mais en conservant
l'extension d'origine du fichier (CSV).
Même symptôme...
Le classeur que je cherche à ouvrir se masque sans que je le lui
demande :-/

Répondez vous par rapport à mon soucis principal, qui est que le
fichier que j'ouvre par VBA se trouve masqué, une fois le code VBA
terminé.

Cordialement.

On 13 juil, 15:07, "MichDenis" wrote:
Bonjour ElXav,

Essaie ceci :

Sub Ouvrir_Fichier_Texte()
Dim strNomPlan2 As String
strNomPlan2 = "C:UsersDMDocumentstext.txt"
Workbooks.OpenText Filename:=strNomPlan2, _
textqualifier:=xlTextQualifierNone, _
DataType:=xlDelimited, Tab:=True, _
other:=True, otherchar:=";", local:=True
End Sub

"ElXav" a écrit dans le message de groupe de discussion :

Bonjour la communauté,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows,
textqualifier:=xlTextQualifierNone, _
other:=True, otherchar:=";", local:=True
End Sub

Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
fonctionne:
- Class1 s'ouvre
- Puis le fichier CSV s'ouvre correctement formatté dans un classeur

Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
- Class1 s'ouvre
- Le fichier CSV s'ouvre correctement formatté dans un classeur
- MAIS, Excel masque automatiquement ce dernier!!!!

En déboggage, j'ajoute une instruction Stop juste après le OpenText.
Si je continue le code en pas à pas, le classeur reste visible.
Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
ferme ??!!??

Des idées?

Cordialement.


Avatar
MichDenis
Tu peux utiliser ceci :

Dans la "Feuil1", j'ai mis une image dans la cellule B4
La procédure, il y a une boucle qui teste si il y a une
image dans la cellule à côté de la cellule A4
si oui, tu obtiens son nom dans la variable "SonNom"

Sub test()
Dim Sh As Shape, SonNom As String

With Worksheets("Feuil1")
For Each Sh In .Shapes
If Sh.TopLeftCell.Address = _
.Range("A4").Offset(, 1).Address Then
sonNom = Sh.Name
End If
Next
End With
Shapes(sonNom).Copy
End Sub


Tu peux écrire une petite fonction comme ceci pour extraire le
nom de l'image dans une présumée cellule :
'--------------------------------------
Sub test()
Dim SonNom As String

With Worksheets("Feuil1")
'appel de la fonction
'Extraire le nom de l'image en B4 si elle existe
SonNom = NomImage(.Range("A4").Offset(, 1))
End With
If SonNom <>"" then
Shapes(SonNom).Copy
End if
End Sub
'--------------------------------------
Function NomImage(Cellule As Range)
Dim Sh As Shape
With Worksheets(Cellule.Parent.Name)
For Each Sh In .Shapes
If Sh.TopLeftCell.Address = _
Cellule.Address Then
SonNom = Sh.Name
End If
Next
End With
NomImage = SonNom
End Function
'--------------------------------------




"MichDenis" a écrit dans le message de groupe de discussion :
#
L'exemple de code que je t'ai donné fonctionne bien
que l'extension du fichier soit csv ou .txt.

Le fichier s'ouvre dans la feuille active du classeur actif à l'écran.

Si ton environnement est différent, à toi de le spécifier.




"ElXav" a écrit dans le message de groupe de discussion :

Bonjour,

Je ne vois pas où se situe la différence entre mon code, et votre
proposition, à part l'extension du fichier??
J'ai essayé, à tout hasard, avec votre commande, mais en conservant
l'extension d'origine du fichier (CSV).
Même symptôme...
Le classeur que je cherche à ouvrir se masque sans que je le lui
demande :-/

Répondez vous par rapport à mon soucis principal, qui est que le
fichier que j'ouvre par VBA se trouve masqué, une fois le code VBA
terminé.

Cordialement.

On 13 juil, 15:07, "MichDenis" wrote:
Bonjour ElXav,

Essaie ceci :

Sub Ouvrir_Fichier_Texte()
Dim strNomPlan2 As String
strNomPlan2 = "C:UsersDMDocumentstext.txt"
Workbooks.OpenText Filename:=strNomPlan2, _
textqualifier:=xlTextQualifierNone, _
DataType:=xlDelimited, Tab:=True, _
other:=True, otherchar:=";", local:=True
End Sub

"ElXav" a écrit dans le message de groupe de discussion :

Bonjour la communauté,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows,
textqualifier:=xlTextQualifierNone, _
other:=True, otherchar:=";", local:=True
End Sub

Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
fonctionne:
- Class1 s'ouvre
- Puis le fichier CSV s'ouvre correctement formatté dans un classeur

Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
- Class1 s'ouvre
- Le fichier CSV s'ouvre correctement formatté dans un classeur
- MAIS, Excel masque automatiquement ce dernier!!!!

En déboggage, j'ajoute une instruction Stop juste après le OpenText.
Si je continue le code en pas à pas, le classeur reste visible.
Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
ferme ??!!??

Des idées?

Cordialement.


Avatar
MichDenis
Oups, ce message n'est pas destiné à ce fil.
Avatar
FFO
Salut à toi

J'ai effectivement constaté le phénomène
Ouvert directement le classeur par le biais d'une macro ouvre le fichier
texte qui est maintenu à l'écran alors que par le biais d'un lien hypertexte
le fichier texte s'ouvre et se referme

Au lieu d'utiliser un lien hypertexte tu peux mettre un bouton personnalisé
dans ta barre en lui affectant la macro de ton classeur
Ton classeur avec la macro ouvert et actif à l'écran:
Outils/Personnaliser Onglet Commandes fenêtre "Catégories" Macros
Mets un bouton personnalisé (cliquez/glisser sur la barre)
Sélectionnes ce bouton
Puis
Modifier la sélection/Affecter une macro
Affectes lui la macro du classeur
Tu peux aussi changer son image dans la liste des possibilités des choix du
"Modifier la sélection"

Puis tu refermes la fenêtre de Personnalisation
Tu refermes ton classeur

A chaque activation de ce bouton la macro s'exécutera avec le maintien de
ton fichier texte dans un classeur Excel

Fais des essais et dis moi !!!!!
Avatar
ElXav
Bah non!
Ca ne résoud pas mon problème :-/

Excel ouvre le fichier CSV dans un classeur, et masque aussitôt ce
dernier!!!!

Je re-précise:
- Si je double clic, depuis l'explorateur, sur mon Class1.XLS, Excel
démarre, mon Class1.XLS s'ouvre.
=> L'évènement Workbook_Open() déclenche bien. Dans cet
évènement j'ai un Call à une procédure toujours dans Class1.XLS, qu i
lance l'OpenText.
=> Le Classeur contenant le fichier CSV ouvert reste à l'écran.
C'est ce que je souhaite.

- Si j'ouvre Excel, puis, clique sur un bouton de barre d'outils
personnalisée, lequel bouton à comme lien HyperText, le chemin
pointant vers mon Class1.XLS
=> Excel ouvre mon Class1.XLS
=> L'évènement Workbook_Open() déclenche bien après l'ouver ture
du classeur, puis l'OpenText est lancé.
=> Le Classeur contenant le fichier CSV s'ouvre, reste un trés
court instant affiché à l'écran
=> Excel masque le classeur CSV!!!!??? C'est là mon problème!!
Alors que je n'ai aucune instruction VBA demandant à masque une
fenêtre. Je ne comprends pas ce comportement.

Pour essayer de comprendre, j'ai inséré un Stop juste après mon Call
dans Workbook_Open(). Une fois le code arrêté, je vérifie que le
fichier CSV est présent à l'écran dans la fenêtre d'Excel. C'est bo n.
Si je fais F5 (Exécution / Continuer), le classeur CSV se masque!!!
Si je fais F8 (Déboggage / Pas à pas détaillé) pour passer le Stop, le
classeur CSV reste à l'écran, je refais F8 sur le End Sub. Le code se
termine, et le classeur se masque :-(

Mon code ci-dessous.
Le but est d'ouvrir automatiquement un fichier CSV, mis à dispo par un
service interne de l'entreprise.

Private Sub Workbook_Open()
'Ajouter un menu dans la barre d'outil feuille de calcul
Dim booMnuVGescom As Boolean
Dim cmdBar As Office.CommandBar
Dim cmdBarBtn As Office.CommandBarPopup
Dim cmdMenu As Office.CommandBarButton

Set cmdBar = Application.CommandBars("Worksheet Menu Bar")

Set cmdBarBtn = cmdBar.Controls.Add(Type:=msoControlPopup,
temporary:=True)
cmdBarBtn.Caption = "&VGescom"

Set cmdMenu = cmdBarBtn.Controls.Add(Type:=msoControlButton,
temporary:=True)
cmdMenu.Caption = " Construire SBM&JOB"
cmdMenu.OnAction = Me.Name & "!CopierCommande"

Set cmdMenu = Nothing
Set cmdBar = Nothing
Set cmdBarBtn = Nothing

Call OuvrirPlanProd
Stop <<<<<<<------ En arrêt sur cette
ligne, le fichier CSV ouvert est toujours à l'écran dans la fenêtre
d'Excel.
End Sub <<<<<<<------- Une fois l'exécution
de cette ligne faite (fin du code), le classeur CSV se masque

Public Sub OuvrirPlanProd()
Dim strNomPlan As String
Dim strNomPlan2 As String
Dim strNomPlanBak As String
Dim strNomPlanTmp As String
Dim strNomWrkBk As String

On Error Resume Next
Err.Clear

strNomPlan = Cst_PlanProd_PathName & "" & Cst_PlanProd_WrkShName
strNomPlan2 = Cst_PlanProd_PathName2 & "" & Cst_PlanProd_WrkShName
strNomPlanBak = Cst_PlanProd_PathName2 & "" &
Cst_PlanProd_WrkShNameBAK
strNomPlanTmp = Cst_PlanProd_PathName2 & "" &
Cst_PlanProd_WrkShNameTMP

'Vérifier existance fichier Plan de Production ASB45 original
If Dir(strNomPlan) <> "" Then

'Détruire fichier tmp éventuellement présent
If Dir(strNomPlanTmp) <> "" Then
'Détruire Tmp précédent
Err.Clear
Kill strNomPlanTmp
If Err.Number <> 0 Then
MsgBox "Impossible de supprimer le fichier temporaire:" &
vbCrLf & " " & strNomPlanTmp & vbCrLf & _
"Il est peut être déjà ouvert par un autre
utilisateur." & vbCrLf & vbCrLf & _
"Vous devez vous assurer que ce fichier puisse être
détruit." & vbCrLf & vbCrLf & _
"Tentative de récupération du fichier original
abandonnée." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
Exit Sub
End If
End If

'Vérifier existance copie Plan de Production ASB45
If Dir(strNomPlan2) <> "" Then

'Vérifier existance Backup Plan de Production ASB45
If Dir(strNomPlanBak) <> "" Then
'Détruire Backup précédent
Err.Clear
Kill strNomPlanBak
If Err.Number <> 0 Then
MsgBox "Impossible de supprimer la sauvegarde précédente:" &
vbCrLf & " " & strNomPlanBak & vbCrLf & _
"Il est peut être déjà ouvert par un autre
utilisateur." & vbCrLf & vbCrLf & _
"Vous devez vous assurer que ce fichier puisse être
détruit." & vbCrLf & vbCrLf & _
"Tentative de récupération du fichier original
abandonnée." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
Exit Sub
End If
End If

'Renommer copie Plan de Production ASB45
Err.Clear
Name strNomPlan2 As strNomPlanBak
If Err.Number <> 0 Then
MsgBox "Impossible de renommer le fichier :" & vbCrLf & " " &
strNomPlan2 & vbCrLf & _
"Il est peut être déjà ouvert par un autre
utilisateur." & vbCrLf & vbCrLf & _
"Vous devez vous assurer que ce fichier puisse être
renommé." & vbCrLf & vbCrLf & _
"Tentative de récupération du fichier original
abandonnée." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
Exit Sub
End If
End If

'Copier le fichier Plan de Production ASB45
Err.Clear
FileCopy strNomPlan, strNomPlan2
If Err.Number <> 0 Then
MsgBox "Impossible de copier le fichier:" & vbCrLf & " " &
strNomPlan & vbCrLf & _
"vers l'emplacement:" & vbCrLf & " " & strNomPlan2 &
vbCrLf & _
"Vous devez vous assurer que le fichier qui va être
ouvert est bien la dernière version à jour mise à disposition par le
service Exploitation." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly

'Tenter de restaurer le backup précédent
If Dir(strNomPlanBak) <> "" Then
Err.Clear
Name strNomPlanBak As strNomPlan2
If Err.Number <> 0 Then
MsgBox "Impossible de restituer le backup:" & vbCrLf & " "
& strNomPlanBak & vbCrLf & _
"Il est peut être déjà ouvert par un autre
utilisateur." & vbCrLf & vbCrLf & _
"Vous devez vous assurer que ce fichier puisse être
renommé." & vbCrLf & vbCrLf & _
"Tentative de récupération du fichier original
abandonnée." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
Exit Sub
End If
End If
End If

Else
MsgBox "Impossible de trouver le fichier:" & vbCrLf & " " &
strNomPlan & vbCrLf & _
"Veuillez vous rapprocher du service Exploitation." &
vbCrLf & vbCrLf & _
"Vous devez vous assurer que le fichier qui va être ouvert
est bien la dernière version à jour mise à disposition par le service
Exploitation." & vbCrLf & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
End If

'Tentative d'ouverture de la copie du Plan de Production

Err.Clear

**************** L'exécution de l'OpenText fonctionne trés bien
************************
Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows,
textqualifier:=xlTextQualifierNone, _
other:=True, otherchar:=";", local:=True
*************************************************************************** ********************

If Err.Number <> 0 Then
MsgBox "Impossible de trouver le fichier:" & vbCrLf & " " &
strNomPlan2 & vbCrLf & _
Err.Description, vbCritical + vbOKOnly
End If

End Sub

Suis-je plus clair?
Si tu as une idée, je suis preneur.
Bonne fin de journée.
Je reviendu mercredi.

Cordialement.


On 13 juil, 16:06, "MichDenis" wrote:
L'exemple de code que je t'ai donné fonctionne bien
que l'extension du fichier soit csv ou .txt.

Le fichier s'ouvre dans la feuille active du classeur actif à l'écran .

Si ton environnement est différent, à toi de le spécifier.

"ElXav" a écrit dans le message de groupe de discussion :

Bonjour,

Je ne vois pas où se situe la différence entre mon code, et votre
proposition, à part l'extension du fichier??
J'ai essayé, à tout hasard, avec votre commande, mais en conservant
l'extension d'origine du fichier (CSV).
Même symptôme...
Le classeur que je cherche à ouvrir se masque sans que je le lui
demande :-/

Répondez vous par rapport à mon soucis principal, qui est que le
fichier que j'ouvre par VBA se trouve masqué, une fois le code VBA
terminé.

Cordialement.

On 13 juil, 15:07, "MichDenis" wrote:



> Bonjour ElXav,

> Essaie ceci :

> Sub Ouvrir_Fichier_Texte()
> Dim strNomPlan2 As String
> strNomPlan2 = "C:UsersDMDocumentstext.txt"
> Workbooks.OpenText Filename:=strNomPlan2, _
>     textqualifier:=xlTextQualifierNone, _
>     DataType:=xlDelimited, Tab:=True, _
>     other:=True, otherchar:=";", local:=True
> End Sub

> "ElXav" a écrit dans le message de groupe de discussi on :
>
> Bonjour la communauté,

> Voici mon soucis:

> J'ai un classeur (appelons Class1), avec du code VBA permettant
> d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

> J'ai donc: dans mon Class1

> Private Sub Workbook_Open()
>   Call OuvrirPlanProd()
> End Sub

> et dans Module1 de Class1

> Public Sub OuvrirPlanProd()
> ...
>   Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindo ws,
> textqualifier:=xlTextQualifierNone, _
>                            other:=True, o therchar:=";", local:=True
> End Sub

> Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
> fonctionne:
>   - Class1 s'ouvre
>   - Puis le fichier CSV s'ouvre correctement formatté dans un class eur

> Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
> bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

> Si j'utilise ce bouton:
>   - Class1 s'ouvre
>   - Le fichier CSV s'ouvre correctement formatté dans un classeur
>   - MAIS, Excel masque automatiquement ce dernier!!!!

> En déboggage, j'ajoute une instruction Stop juste après le OpenText .
> Si je continue le code en pas à pas, le classeur reste visible.
> Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
> ferme ??!!??

> Des idées?

> Cordialement.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
MichDenis
Au lieu de définir un lien hypertexte à ton bouton de la barre des menus,
tu ajoutes la propriété "OnMacro" à laquelle tu affectes une macro
ouvrant ledit classeur .csv.
Avatar
LSteph
bonjour,

utilise open
au lieu de opentext
spécifie simplement le nom du fichier et le type


-
lSteph




ElXav a écrit :
Bonjour la communauté,

Voici mon soucis:

J'ai un classeur (appelons Class1), avec du code VBA permettant
d'ouvrir au autre classeur. Ce dernier étant un fichier CSV.

J'ai donc: dans mon Class1

Private Sub Workbook_Open()
Call OuvrirPlanProd()
End Sub

et dans Module1 de Class1

Public Sub OuvrirPlanProd()
...
Excel.Workbooks.OpenText Filename:=strNomPlan2, origin:=xlWindows,
textqualifier:=xlTextQualifierNone, _
other:=True, otherchar:=";", local:=True
End Sub

Lorsque je double clic sur mon Class1 à partir de l'explorateur, cela
fonctionne:
- Class1 s'ouvre
- Puis le fichier CSV s'ouvre correctement formatté dans un classeur

Je me suis créé une barre d'outil perso dans Excel, avec un menu + un
bouton, sur lequel j'ai mis un lien hypertext vers mon Class1.

Si j'utilise ce bouton:
- Class1 s'ouvre
- Le fichier CSV s'ouvre correctement formatté dans un classeur
- MAIS, Excel masque automatiquement ce dernier!!!!

En déboggage, j'ajoute une instruction Stop juste après le OpenText.
Si je continue le code en pas à pas, le classeur reste visible.
Si je fais "Continuer", en étant arrêté sur le Stop, le classeur se
ferme ??!!??

Des idées?

Cordialement.


Avatar
ElXav
Bonjour,

Curieux comportement non?
Bug ou normal?

Ceci étant, ta proposition fonctionne peut-être, mais ne répondra pas
à mon besoin.
Pour affecter la macro au bouton, il faut que le classeur soir ouvert
(Class1), hors, dans ma barre d'outils personnalisée, c'est bien
Class1 que je veux ouvrir, et ce dernier se charge d'ouvrir mon CSV...

Je fais cela pour m'éviter de créer un raccourci quelque part qui
pointe vers Class1, ou d'utiliser l'explorateur pour retrouver ce
fichier...
Un peu comme si j'ajoutais un bouton dans un gestionnaire type Office
XP...

Merci tout de même.
Si tu as d'autres idées, suis toujours preneur.

Cordialement.


On 13 juil, 16:44, FFO wrote:
Salut à toi

J'ai effectivement constaté le phénomène
Ouvert directement le classeur par le biais d'une macro ouvre le fichier
texte qui est maintenu à l'écran alors que par le biais d'un lien hyp ertexte
le fichier texte s'ouvre et se referme

Au lieu d'utiliser un lien hypertexte tu peux mettre un bouton personnali sé
dans ta barre en lui affectant la macro de ton classeur
Ton classeur avec la macro  ouvert et actif à l'écran:
Outils/Personnaliser Onglet Commandes fenêtre "Catégories" Macros
Mets un bouton personnalisé (cliquez/glisser sur la barre)
Sélectionnes ce bouton
Puis
Modifier la sélection/Affecter une macro
Affectes lui la macro du classeur
Tu peux aussi changer son image dans la liste des possibilités des choi x du
"Modifier la sélection"

Puis tu refermes la fenêtre de Personnalisation
Tu refermes ton classeur

A chaque activation de ce bouton la macro s'exécutera avec le maintien de
ton fichier texte dans un classeur Excel

Fais des essais et dis moi !!!!!


1 2