begin process at 2010 02 10 13:20:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Diverses petite questions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Diverses petite questions

mercredi 2 mai 2007 à 18:47:10 | Diverses petite questions

dj hf

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.

Merci de m'avoir de lu deja.

Merci d'avance de l'aide que vou m'apporterez.

jeudi 3 mai 2007 à 08:42:48 | Diverses petites réponses

jrivet

Membre Club
Réponse acceptée !
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)
By Renfield



@+: Ju£i€n
Pensez: Réponse acceptée
jeudi 3 mai 2007 à 09:03:56 | Re : Diverses petite questions

jrivet

Membre Club
Réponse acceptée !
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
Sub TaProcedure()
MsgBox "Tu as appuye sur le bouton de ta command Bar"
End Sub


Private Sub Document_Open()
   CreateCommandBar
End Sub
By Renfield


@+: Ju£i€n
Pensez: Réponse acceptée
jeudi 3 mai 2007 à 19:24:37 | Re : Diverses petite questions

dj hf

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.

MERCI D'AVANCE ET MERCI ENCORE JRIVET

vendredi 4 mai 2007 à 07:55:10 | Re : Diverses petite questions

jrivet

Membre Club
Réponse acceptée !
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
By Renfield
9°) AUCUNE IDEE
@+: Ju£i€n
Pensez: Réponse acceptée
vendredi 4 mai 2007 à 08:23:35 | Re : Diverses petite questions

jmfmarques

Membre Club
Réponse acceptée !

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...

Qu'à celà ne tienne !m

Sur ton userform :

- 1 drivelistbox nommée Drive1
- 1 dirlistBox nommée Dir1
-1 FileListbox nommée File1

Code :

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



 

vendredi 4 mai 2007 à 08:30:59 | Re : Diverses petite questions

jrivet

Membre Club
Réponse acceptée !
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



@+: Ju£i€n
Pensez: Réponse acceptée
dimanche 6 mai 2007 à 11:22:36 | Re : Diverses petite questions

dj hf

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!

mercredi 9 mai 2007 à 19:05:37 | Re : Diverses petite questions

dj hf

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 ?

 

Voila c'est tout pour aujourd'hui 

MERCI D'AVANCE

jeudi 10 mai 2007 à 08:01:36 | Diverses petites réponses

jrivet

Membre Club
Réponse acceptée !
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émentDescription
string1Expression de chaîne dans laquelle la recherche est effectuée.
string2Expression recherchée.
startFacultatif. Expression numérique définissant la position de départ de chaque recherche. Si elle est omise, -1 est employé, ce qui signifie que la recherche commence à la dernière position de caractère. Si l'argument start contient la valeur

Null, une erreur se produit.

compareFacultatif. Valeur numérique indiquant le type de comparaison à utiliser lors de l'évaluation des sous-chaînes. Si elle est omise, une comparaison binaire est effectuée. Reportez-vous à la section Valeurs.

C°) oui il est tout a fait possible de le faire (si la procédure à appeler à été déclarer avec une portée suffisante pour être vu par la premiere)
exemple tout bête (si j'ai bien compris ce que tu souhaites)
Sub TaMacro1()
   MsgBox "Macro 1"
   Call TaMacro2
End Sub

Sub TaMacro2()
   MsgBox "Macro 2"
End Sub
By Renfield



@+: Ju£i€n
Pensez: Réponse acceptée

1 2 3 4

Cette discussion est classée dans : variable, excel, utilisateur, questions, deja


Répondre à ce message

Sujets en rapport avec ce message

Gestion des instances d'Excel en VB6 [ par Wanours ] Bonjour à tous,A partir d'une dll VB6 chargée dans une application extérieure, je viens :    - Ouvrir Excel en mode "caché" (nouvelle instance, create Activesheet : mettre à jour une feuille active d'excel [ par VBSidder ] Bonjour!je dois mettre à jour des infos les infos d'une feuille excel active mais je rencontre une difficulté. J'ai un problème avec la fonction activ access et variable excel [ par chaudier37 ] bonjourje cherche à faire un lieu entre des champs access et des variables excel. comment faire alors que je suis très très novicemerci Connection Excel, nom de base choisi par utilisateur [ par tapageur99 ] tapageur Bonjour, En VB6. J'ai un fichier Excel (gabarit.xls)que je veux garder intact. Au début de mon programme, j'en fais donc une copie dans un d VBA EXCEL - OUTLOOK VARIABLE DANS SUBJECT [ par userrrqi115 ] Hello, J'ai trouvé sur les forum un petit code permettant d'envoyer un mail outlook à partir d'une macro Excel.J'ai pu en tirer ce que je recherchais nombre impression variable d'un document excel [ par pakalom ] Bonjour je suis a la recherche d'une macro afin qu'un utilsateur puisse lui même determiner le nombre de copies qu'il souhaite. et si c'est possible q Changer automatiquement numero de cellule excel [ par kurtaliasdiablo ] Bonjour à tous,je travaille avec VB Scriptest-ce que vous savez comment faire pour modifier l'index d'une cellule excel avec une variable?l'instructio Excel 2003 - VBA - retenir un nom d'utilisateur et un mot de passe [ par accroalordi ] Bonjour,</s Récuperer une formule écrite dans un textbox [ par pito85 ] Bonjour tous le monde, Voilà mon problème : j'aimerais récupérer une formule (avec variable) entrée par un utilisateur dans une Textbox et pouvoir ens Annulation de fermeture d'application Excel [ par pilounet54 ] Bonjour, J'ai une Application excel dans laquelle 2 classeurs sont ouverts. Je souhaiterais annuler la fermeture de l'application si l'utilisateur c


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales