ASTUCES POUR EXCEL.

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 14 déc. 2008 à 18:15
medjahedScript Messages postés 14 Date d'inscription mercredi 22 décembre 2010 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/48707-astuces-pour-excel

medjahedScript Messages postés 14 Date d'inscription mercredi 22 décembre 2010 Statut Membre Dernière intervention 7 mars 2011
7 mars 2011 à 17:58
Bon programmation
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013
18 déc. 2008 à 19:48
merci MimiZanzan,
cela fonctionne perfect.
Bonne soirée à tous
mimiZanzan Messages postés 301 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 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és 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 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és 21 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 28 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és 8 Date d'inscription samedi 18 octobre 2008 Statut Membre Derniè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és 21 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 28 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és 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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és 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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

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+
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 8 Date d'inscription samedi 18 octobre 2008 Statut Membre Derniè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és 301 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 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és 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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

n'est pas vraiment du VB"A", mais du VB.

Amicalement,
Us.
Rejoignez-nous