dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007
-
2 mai 2007 à 18:47
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007
-
19 mai 2007 à 12:39
Bonjour a tous ,
Je suis entrin de creer une interface utilisateur sur word pour faire du stockage dans excel.
J'ai rencontré quelques problemes je viens donc vous poser mes questions :
1° Je voudrais savoir quelle commande je dois utiliser pour enregistrer un doc excel que ma macro a modifié et qui existait deja (avec trois feuilles contenant des tableaux) , j'ai essayé appliexcel.save mais quand j'ouvre par la suite le doc excel, il ne contient plus aucune feuille?
2° J'ai fais un bouton sous word sur la feuille, et je voudrais qu'il ne soit pas statique mais qu'il se deplace sur le coté droit de la page, lorsque l'utilisateur fait défilé le document , de facon a ce qu'il l'ai toujours sous la main.
3° Je voudrais creer un bouton "parcourir" pour que l'utilisateur selectionne un fichier, et stocker dans une variable le chemin vers celui-ci, j'ai trouvé des sujets qui en parlait sur le forum mais rien n'a fonctionné pour moi.
4° Je voudrais que mon code , renomme un fichier excel deja existant mais je ne sais pas comment faire.
5° L'utilisateur donne une valeur a une variable sur ma form1 et je voudrais pouvoir utiliser cette valeur dans ma form2 , j'ai essayé de declarer la variable dans la partie generale puis dans un module mais aucune des deux techniques ne fonctionnent , qu'elle est la marche a suivre precisement.
6° Mes champs textes sur mes forms ne permettent pas le click droit pour par exemple copier ou coller et je voudrais permettre cela faut il ajuster une propriété.
7° Et je voulais savoir si il est possible que ma macro reconnaisse le numero de page ou l'utilisateur se situ lors de sa lecture.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 3 mai 2007 à 08:42
Salut,
Je suis sûr que tu as déjà trouver tes solutions....
1°) Pour sauver un classeur excel il te faut utiliser Save mais sur un objet de type WorkBook.(il semblerait que tu le fasse sur l'objet Application, qui, soit dit en passant, ne possède pas de méthode Save) il serait judicieux de donner tes definitions de variables. (utilise tu une référence pour ton projet ou bien des variables issue d'un CreateObject
2°) Pourquoi ne pas insérer un Menu dans Word que l'utilisateur pourra aller chercher n'importe plutôt que de se trimbaler avec un bouton...
3°) Qu'as tu trouver? je crois que le Microsoft Common Dialog Control est pour toi. (avec ces méthode ShowOpen Et ShowSave)
4°) Est ce que tu veux le renommer lorsque'il est ouvert ou pas? Si pas besoin d'être ouvert alors utilise Name Source As Destination Avec Source le nom de départ et destination le nom d'arriver
5°) Tu as du te tromper quelques part car cela fonctionne, déclarée en public dans un module une variable est accessible partout
Public TOTO As String , TOTO sera visible et modifiable depuis tes deux UserForm
6°) Il faut passer par un PopUpMenu
7°) il suffit de chercher un peu sur Google....
Dim ActivePage As Integer
ActivePage = Selection.Information(wdActiveEndPageNumber)
, ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 3 mai 2007 à 09:03
Re,
Je t'ai trouvé et adapter (commenté) un petit exemple pour le point 2°) l'exemple ci dessous est à ajouter dans le code de thisDocument
Sub CreateCommandBar()
Dim oCommandBar As CommandBar
Dim oControl As CommandBarButton
CustomizationContext = ActiveDocument.AttachedTemplate
On Error Resume Next
'On l'efface au cas ou elle est été
'déjà presente
CommandBars("MaBar").Delete
On Error GoTo 0
'on ajoute un bar de commande a WORD (elle sera ancree)
'Si tu veux qu'elle soit flottante sur ton document
'remplace msoBarTop par msoBarFloating
Set oCommandBar = CommandBars.Add("MaBar", msoBarTop)
'on la rends visible
oCommandBar.Visible = True
'on lui ajoute un bouton
Set oControl = oCommandBar.Controls.Add(msoControlButton)
'ca c'est le ToolTip
oControl.Caption = "TonTitre"
'ca c'est le nom de la procédure à appeler si on appuie dessus
oControl.OnAction = "TaProcedure"
oControl.FaceId = 250 'Ca c'est un indice pour l'icone à mettre (connais pas les valeurs)
End Sub<hr />Sub TaProcedure()
MsgBox "Tu as appuye sur le bouton de ta command Bar"
End Sub<hr />
Private Sub Document_Open()
CreateCommandBar
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 mai 2007 à 07:55
Re,
Content que tu avances.
3°) pas de CommonDialogu pour ton cahier des charges.... pas de bol. Si ce n'est que le chemin que tu veux demander, tu peux essayer un module qui s'appelle BrowseForFolder
6°) j'ai regarder un peu hier mais je n'ai rien réussi à faire. je vais réessayer aujourd hui
8°)Ce qu'il te faut sont les fonction Mid, Len, InstrRev Soit en mixant le tout
Dim Chemin As String
Dim NomUtil As String
Dim NomTotal As String
'le chemin
Chemin = "C:\Test\Fichier.xls"
NomUtil = "Ajout_"
NomTotal = Mid(Chemin, 1, InStrRev(Chemin, "\")) & NomUtil & Mid(Chemin, InStrRev(Chemin, "\") + 1)
MsgBox NomTotal, ----
[code.aspx?ID=41455 By Renfield]
9°) AUCUNE IDEE
@+: Ju£i?n Pensez: Réponse acceptée
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 4 mai 2007 à 08:23
Bonjour,
Je vois qu'on t'emposinne l'existence en t'imposant de ne pas utiliser un contrôle commonDialog
Je suppose qu'on t'interdit alors également l'emploi d'une fonction de l'Api de indows qui ferait la même chose...
Private Sub Command1_Click()
'tu peu forcer le choix du drive
'exemple :
'Drive1.Drive = "d:"
' tu peux également forcer le répertoire, exemple
Dir1.Path = "d:\monoutil"
End Sub
Private Sub Drive1_Change()
Dir1.Path = "d:"
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
'tu peux forcer l'extension, si tu veux, exemple
File1.Pattern = "*.xls"
End Sub
Private Sub File1_Click()
MsgBox Dir1.Path & "" & File1.filename
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 4 mai 2007 à 08:30
Re,
De retour pour
6°)IL Y A SANS DOUTE PLUS SIMPLE MAIS JE NE CONNAIS PAS
j'ai trouve grâce aux Google Groupe (une mine d'or d'info)
Pour ne pas "polluer" le forum avec un simple copier coller voici le lien interessant
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 mai 2007 à 08:01
Salut,
A°) Aucune idée pour l'instant
B° qu'est ce que tu ne comprends pas?
alors lorsque tu ne comprends pas une procédure tu peux aller voir la MSDN disponible sur internet (ou pour les plus chanceux directement sur leur poste avec F1)
En gros:
Mid te permet d'extraire une partie d'un chaine de caractère (premier parametre), en lui passant la position du premier caractere à prendre (second parametre) , et la longueur (dernier parametre). si le dernier parametre n'est pas mis alors il prendra la "sous chaine" a partir de la position dite jusqu'à la fin.
Len: bah ca te renvoi la longueur d'une chaine de caractere.
InstrRev (tirée de la msdn)
Description
Renvoie la position d'une occurrence d'une chaîne dans une autre, à partir de
la fin de la chaîne.
Syntaxe
InstrRev(string1,string2[,start[,compare]])
La syntaxe de la fonction InstrRev comprend les éléments
suivants :
Élément, Description, ----
string1, <object id="alink_4" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[code.aspx?ID=41455 By Renfield]
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 10 mai 2007 à 09:01
Salut,
A° Est il possible de lancer une procedure lorsqu'un utilisateurs ecrit dans Word ? Stocker ce qu'il ecrit dans une variable? Localiser l'endroit ou il a ecrit?
J'ai vu une méthode ResolveConflict qui permet de vérifier la présence de conflit entre 2 documents.
Par contre pour l'évenement sur modification, je n'ai pas trouvé mais tu peux passé par l'evenement DocumentBeforeSave ou encore (si c'est possible) de détecter l'appui sur OK dans la fenetre qui Word affiche lorsque l'on quite un doc sans sauver (donc présence de modification detecté par Word).
J'ai pas beaucoup cherché mais ca me semble pas etre trivial.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 11 mai 2007 à 08:01
Alors pour le Set mavariable=Nothing, normalement ca doit fonctionner. S'il te demand un objet, c'est que cet objet n'est pas créer (erreur de synthaxe peut etre). Donne nous la déclaration de cette variable et son utilisation car ca me parait bizarre.
Pour ta 2eme question, je sais pas ce qu'est un RADIO bouton. Je connais bouton commande et bouton option mais c'est tout. Dis moi comment on fait pour en mettre un dans une cellule et je pourrais t'aider sauf si jrivet passe par la.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 11 mai 2007 à 09:31
Salut,
J'ai pas résussi a changer la valeur d'un option button directement, mais il existe ceci.
Après avoir insérer l'otpion button directement dans la feuille , donne lui une cellule à sa propriété LinkedCell exemple Feuil2!A1 (cellule A1 de la feuille 2)
Ajoute un Bouton à coté de ton optionbutton pour tester et regarde ce code
Private Sub CommandButton1_Click()
Static B As Boolean
B = Not B
Worksheets("Feuil2").Range("A1").Value = B
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007 3 mai 2007 à 19:24
Salut Jrivet merci beaucoupde ton aide et du code c'est vraiment sympa de t'etre investi pour m'aider !!!
Donc grace a toi 1°,2° , 4° et 7° sont resolus , sa fonctionne.
Pour 5° c'est resolu aussi, j'ai trouvé mon erreur, c'etait que pour appeler la variable il fallait faire NomDuModule.NomDeLaVariable et moi j'oubliais d'ecrire NomDuModule.
Pour 3° , tu as raison CommonDialogu est fait pour ca, mais pour des raisons techniques (cahier des charges) je ne peu pas m'en servir dans mon projet donc je me demandais si il y avait une autre technique pour faire que l'utilisateur selectionne un chemin vers un fichier et que se chemin soit stocké dans une variable.
Pour 6° je comprends pas trop ce que tu entends par Pop Up Menu ici.
Et depuis hier j'ai rencontré de nouvelles embuches donc j'allonge la liste :
8° J'ai le chemin complet vers un fichier dans une variable, et je dois renommer ce fuchier en y ajoutant au debut la valeur d'une autre variable.
En gros j'ai ma variable "chemin" qui contient un truc du genre"c:\document\fichier.xls.
J'ai une autre variable "nom" qui contien le nom que l'utilisateur a entré.
Et je dois renommé le fichier dont il m'a donné le chemin en y ajoutant son nom devant ca donnera nom_fichier.xls
Sachant que le fichier peut avoir n'importe quel nom tout comme l'utilistauer, je suis donc obligé d'utiliser des variables. Mais je ne vois pas comment renommer que la partie du fichier qui m'interess??
9° Tout autre chose, word effectue un suivi de modification. Donc on peut lire en cliquant sur l'icone du suivi quel utilisateur a a modifié quoi dans le document.
Il faudrait que je puisse avoir accés a ce suivi , au nom de l'utilisateur et a ce qu'il a modifié pour stocker tout cela dans excel. Pareil, si quelqu'un s'est deja atardé sur le sujet son aide sera la bienvenue.
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007 6 mai 2007 à 11:22
Merci beaucoup Jrivet de ton aide c'est super et merci a toi jmfmarques pour ton code super utile!!! C'est hyper sympa a vous de vous etre cresé la tete pour m'aider!
Je vais tester tout ca et je vous tient au courant, de toute facon j'aurais certainement d'autres petites question mais je commence a maitrisé de plus en plus visual basic!
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007 9 mai 2007 à 19:05
Salut !
Alors j'ai rencontré deux , trois embuches aujourd'hui ,VbFrance a repondu aux trois quarts des questions que je me posais, je vous poses donc celle sans reponses :
A° Est il possible de lancer une procedure lorsqu'un utilisateurs ecrit dans Word ? Stocker ce qu'il ecrit dans une variable? Localiser l'endroit ou il a ecrit?
B° C'est toujours pour renommer les fichiers, cette fois j'ai deux variables v1 et v2 , v1 contient le chemin vers un fichier "c:\test.xls" et v2 contient un mot. Je dois renommer le fichier test.xls de cette facon : test_nom.xls, j'imagine qu'il faut se servir des fonctions Mid, Len, InstrRev comme jrivet me l'avait dit pour un probleme un peu semblabe, mais comme je n'ai pas compris comment cela fonctionné exactemen...
C° Est il possible que ma macro lance une autre macro qui existe deja ?
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007 10 mai 2007 à 18:47
Merci Nicko11 ! Je vais exploité tes idées je pense que je vais arrivé a quelque chose de satisfaisant (du moins pour moi)
Sinon j'ai deux petites questions :
-Comment on fait pour supprimer des variables (ou leur contenu) quand elle sont plus utilisées pour pas utiliser de la memoire inutilement?
Je pensais qu'en faisant : Set mavariable=Nothing ca fonctionnerai, mais non ca me donne l'erreur : "Objet Requis"
-Et j'ai une feuille Excel avec un bouton radio , comment je fais pour cocher ce bouton a partir de mon code visual basic si je sais dans quelle cellule , sur quelle page et dans quel fichier excel il se trouve exactement. (juste pour le cocher ou selectionner , vu que j'ouvre deja excel pour y ecrire des choses dans des cellules le reste ne devrait pas me poser de probleme)
dj hf
Messages postés25Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention10 juin 2007 11 mai 2007 à 08:16
Salut Nicho11 !
Merci pour ta reponse!
Moi j'appelle bouton radio (je pense que toi tu appele ca bouton option) les boutons rond que tu ne peux en seletionner qu'un a la fois lorsqu'ils sont en groupe.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 11 mai 2007 à 08:42
OK, je ne connais pas Excel mais je vais essayé. Tu me dis "si je sais dans quelle cellule", mais personnellement, je sais pas comment insérer ce controle DANS une cellule.
Sinon, dans le principe, ca doit etre un truc du genre