ASTUCES POUR EXCEL.

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
- - Dernière réponse : 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

us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8 -
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.
mimiZanzan
Messages postés
301
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 décembre 2017
-
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.
xyface
Messages postés
8
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
4 janvier 2009
-
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
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8 -
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.
bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8 -
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+
bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8 -
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+
piloulac
Messages postés
21
Date d'inscription
dimanche 10 juin 2007
Statut
Membre
Dernière intervention
28 décembre 2008
-
Merci infiniment à toi BigFish pour tous ces commentaires très judicieux.
J'essaie tout de suite d'intégrer tes conseils à mon petit didacticiel.
xyface
Messages postés
8
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
4 janvier 2009
-
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
-
XYface, désolé, je ne connais rien à Open Office.
Peut-être un spécialiste pourrait-il te tépondre.
LUSTRUCRU
Messages postés
91
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
15 mars 2013
-
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
mimiZanzan
Messages postés
301
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 décembre 2017
-
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
-
merci MimiZanzan,
cela fonctionne perfect.
Bonne soirée à tous
medjahedScript
Messages postés
14
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
7 mars 2011
-
Bon programmation