us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
14 déc. 2008 à 18:15
medjahedScript
Messages postés14Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention 7 mars 2011
-
7 mars 2011 à 17:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
medjahedScript
Messages postés14Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention 7 mars 2011 7 mars 2011 à 17:58
Bon programmation
LUSTRUCRU
Messages postés91Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention15 mars 2013 18 déc. 2008 à 19:48
merci MimiZanzan,
cela fonctionne perfect.
Bonne soirée à tous
mimiZanzan
Messages postés301Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 décembre 2017 18 déc. 2008 à 19:35
Très facile:
Dim fichImp
fichImp = Application.GetOpenFilename
Ceci ouvre une boite mais pas le fichier.
Pour l'ouvrir, faire ensuite
Workbooks.Open Filename:=fichImp
C'est tout!
LUSTRUCRU
Messages postés91Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention15 mars 2013 18 déc. 2008 à 16:05
Très bien ! astuces très interressantes
petite question :
Comment récuperer (dans une variable) le chemin d'accés d'un fichier Xls à travers une boite de dialogue de type "ouvrir fichier".
merci de vos réponses
et encore merci
piloulac
Messages postés21Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention28 décembre 2008 16 déc. 2008 à 12:53
XYface, désolé, je ne connais rien à Open Office.
Peut-être un spécialiste pourrait-il te tépondre.
xyface
Messages postés8Date d'inscriptionsamedi 18 octobre 2008StatutMembreDernière intervention 4 janvier 2009 16 déc. 2008 à 12:40
bonjour
cela pourrait fonctionner avec open office 3 et son tableur?
piloulac
Messages postés21Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention28 décembre 2008 15 déc. 2008 à 18:27
Merci infiniment à toi BigFish pour tous ces commentaires très judicieux.
J'essaie tout de suite d'intégrer tes conseils à mon petit didacticiel.
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 15 déc. 2008 à 17:57
Re,
j'ai pas été tres complet sur la derniere partie donc je precise un peu:
le fait de rendre invisible excel alors que ton userform est encore a l'ecran interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur et il risque de ne pas comprendre pourquoi! De plus si il ferme le userform et qu'il ouvre un fichier excel cette fois ci excel va reapparaitre et c'est peut etre toi dans ce cas qui va te retrouver dans une situation non souhaitée. Pour eviter ces 2 cas il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):
Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub
ceci dit tu as bien geré le cas de la fermeture de la form en remettant l'option visible de l'application a vrai. Cette precision n'est valable que dans le cas d'une appli qui aurait besoin de continuer a tourner meme apres fermeture de la forme et ce sans qu'elle puisse etre rendu visible par l'ouverture d'un autre fichier excel.
A+
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 15 déc. 2008 à 17:37
Bonjour,
C'est pas mal, cela a au moins le merite de regrouper plusieurs astuces pas toujours faciles a trouver.
Mais...
je ne suis pas d'accord sur la façon de desactiver les combinaisons de touches Alt+F1, Ctrl+PgUp ou Ctrl+PgDn. Il existe une methode qui simplifie le code et fonctionne avec n'importe quelle combinaison de touches. Ce qui est encore plus etrange c'est que tu as utilisé cette methode dans d'autre cas alors pourquoi pas pour ceux-ci ?
Sub DesactiverCombiTouche()
Application.OnKey "%{F1}", "MessageDeLimitation"
Application.OnKey "^{PGUP}", "MessageDeLimitation"
Application.OnKey "^{PGDN}", "MessageDeLimitation"
End Sub
Sub RetablirCombiTouche()
Application.OnKey "%{F1}"
Application.OnKey "^{PGUP}"
Application.OnKey "^{PGDN}"
End Sub
Sub MessageDeLimitation()
MsgBox "Vos droits sur ce fichier ne vous permettent pas d'acceder à ces fonctions !", vbExclamation
End Sub
Je ne suis pas non plus d'accord avec la methode qui consiste a virer la croix du userform c'est bien compliqué pour pas grand chose. En effet il existe un evenement sur la form qui permet de detecter l'utilisation de la croix et donc de la desactiver.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode 0 Then Cancel 1
End Sub
Autre chose: le fait de rendre invisible excel interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur ! il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):
Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub
A+
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 15 déc. 2008 à 12:34
Bonjour,
"applicable aussi bien au VB qu'au VBA"
C'est exactement ce que je dis : "n'est pas vraiment du VB"A", mais du VB." Donc, ce n'est pas spécifiquement du VBA... mais cela n'est pas grande importance, l'intérêt est là. C'était aussi l'occassion de mettre une note... -:);
Amicalement,
Us.
xyface
Messages postés8Date d'inscriptionsamedi 18 octobre 2008StatutMembreDernière intervention 4 janvier 2009 15 déc. 2008 à 10:06
bonjour
je travaille sur une application pour un jeu en ligne: ikariam
je me rejouissait de pouvoir intégrer ce code dans mon travail pour l'ameliorer pour les gars de mon alliance
mais je travaille sous open office et les codes proposés ne fonctionnent sous le calculateur d'open office
y aurait il moyen d'avoir une adaptation du code pour open office?
ou conseils et ou liens
merci d'avance
mimiZanzan
Messages postés301Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 décembre 2017 15 déc. 2008 à 02:42
Je ne voudrais pas ergoter, mais la fonction dont tu parles, us_30, est tout simplement une fonction API, applicable aussi bien au VB qu'au VBA (entre autres)...
Sinon, le code de piloulac est plutôt sympa et utile à ceux qui ne connaissaient pas encore ces astuces Excel.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 déc. 2008 à 18:15
Bonjour,
Disons que ce genre de code :
Private Declare Function GetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
7 mars 2011 à 17:58
18 déc. 2008 à 19:48
cela fonctionne perfect.
Bonne soirée à tous
18 déc. 2008 à 19:35
Dim fichImp
fichImp = Application.GetOpenFilename
Ceci ouvre une boite mais pas le fichier.
Pour l'ouvrir, faire ensuite
Workbooks.Open Filename:=fichImp
C'est tout!
18 déc. 2008 à 16:05
petite question :
Comment récuperer (dans une variable) le chemin d'accés d'un fichier Xls à travers une boite de dialogue de type "ouvrir fichier".
merci de vos réponses
et encore merci
16 déc. 2008 à 12:53
Peut-être un spécialiste pourrait-il te tépondre.
16 déc. 2008 à 12:40
cela pourrait fonctionner avec open office 3 et son tableur?
15 déc. 2008 à 18:27
J'essaie tout de suite d'intégrer tes conseils à mon petit didacticiel.
15 déc. 2008 à 17:57
j'ai pas été tres complet sur la derniere partie donc je precise un peu:
le fait de rendre invisible excel alors que ton userform est encore a l'ecran interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur et il risque de ne pas comprendre pourquoi! De plus si il ferme le userform et qu'il ouvre un fichier excel cette fois ci excel va reapparaitre et c'est peut etre toi dans ce cas qui va te retrouver dans une situation non souhaitée. Pour eviter ces 2 cas il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):
Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub
ceci dit tu as bien geré le cas de la fermeture de la form en remettant l'option visible de l'application a vrai. Cette precision n'est valable que dans le cas d'une appli qui aurait besoin de continuer a tourner meme apres fermeture de la forme et ce sans qu'elle puisse etre rendu visible par l'ouverture d'un autre fichier excel.
A+
15 déc. 2008 à 17:37
C'est pas mal, cela a au moins le merite de regrouper plusieurs astuces pas toujours faciles a trouver.
Mais...
je ne suis pas d'accord sur la façon de desactiver les combinaisons de touches Alt+F1, Ctrl+PgUp ou Ctrl+PgDn. Il existe une methode qui simplifie le code et fonctionne avec n'importe quelle combinaison de touches. Ce qui est encore plus etrange c'est que tu as utilisé cette methode dans d'autre cas alors pourquoi pas pour ceux-ci ?
Sub DesactiverCombiTouche()
Application.OnKey "%{F1}", "MessageDeLimitation"
Application.OnKey "^{PGUP}", "MessageDeLimitation"
Application.OnKey "^{PGDN}", "MessageDeLimitation"
End Sub
Sub RetablirCombiTouche()
Application.OnKey "%{F1}"
Application.OnKey "^{PGUP}"
Application.OnKey "^{PGDN}"
End Sub
Sub MessageDeLimitation()
MsgBox "Vos droits sur ce fichier ne vous permettent pas d'acceder à ces fonctions !", vbExclamation
End Sub
Je ne suis pas non plus d'accord avec la methode qui consiste a virer la croix du userform c'est bien compliqué pour pas grand chose. En effet il existe un evenement sur la form qui permet de detecter l'utilisation de la croix et donc de la desactiver.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode 0 Then Cancel 1
End Sub
Pour plus d'info sur les limitations que l'on peut appliquer a excel tu peux aller jeter un oeil ici :
http://www.vbfrance.com/codes/AMELIORER-SECURITE-ACCES-DONNEES-CODE-FICHIER-EXCEL_48448.aspx
Autre chose: le fait de rendre invisible excel interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur ! il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):
Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub
A+
15 déc. 2008 à 12:34
"applicable aussi bien au VB qu'au VBA"
C'est exactement ce que je dis : "n'est pas vraiment du VB"A", mais du VB." Donc, ce n'est pas spécifiquement du VBA... mais cela n'est pas grande importance, l'intérêt est là. C'était aussi l'occassion de mettre une note... -:);
Amicalement,
Us.
15 déc. 2008 à 10:06
je travaille sur une application pour un jeu en ligne: ikariam
je me rejouissait de pouvoir intégrer ce code dans mon travail pour l'ameliorer pour les gars de mon alliance
mais je travaille sous open office et les codes proposés ne fonctionnent sous le calculateur d'open office
y aurait il moyen d'avoir une adaptation du code pour open office?
ou conseils et ou liens
merci d'avance
15 déc. 2008 à 02:42
Sinon, le code de piloulac est plutôt sympa et utile à ceux qui ne connaissaient pas encore ces astuces Excel.
14 déc. 2008 à 18:15
Disons que ce genre de code :
Private Declare Function GetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
n'est pas vraiment du VB"A", mais du VB.
Amicalement,
Us.