Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3039 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boîte de dialogue pour copie d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boîte de dialogue pour copie d'un fichier

n°1701177
Spayciz
Posté le 12-03-2008 à 15:48:13  profilanswer
 

Bonjour,
 
Avant tout, je suis débutant sur vb donc je fais appel à vos compétences!
 
Sous access, j'ai créé un module vb qui m'execute plusieurs requetes et les enregistre dans un fichier excel modèle, une feuille par requete (appelé par la suite fichier1).
 
A l'heure actuelle, j'utilise une input box pour demander un nom, et ensuite, je recopie mon fichier1 avec ce nouveau nom.
Le probleme, c'est que le répertoire de destination de la copie est en dur dans le code.Je voudrais donc, à la fin de l'execution des requetes, ouvrir une boite de dialogue (type enregistrer sous) dans laquelle l'utilisateur pourra choisir le répertoire de destination et le nom à donner au nouveau fichier.
 
Je vous remercie par avance.

mood
Publicité
Posté le 12-03-2008 à 15:48:13  profilanswer
 

n°1701569
Spayciz
Posté le 13-03-2008 à 11:01:03  profilanswer
 

Personne n'aurait une petite idée?

n°1701774
jpcheck
Pioupiou
Posté le 13-03-2008 à 15:09:15  profilanswer
 

salut,
J'utilise souvent GetOpenfileName comme méthode issu d'excel.


---------------
Les fautes d'orthographe coûtent des millions d'euros aux entreprises, marre des fau
n°1701830
Spayciz
Posté le 13-03-2008 à 16:01:32  profilanswer
 

jpcheck a écrit :

salut,
J'utilise souvent GetOpenfileName comme méthode issu d'excel.


 
Le problème, c'est que mon fichier excel model n'est pas ouvert. Il est juste rempli lors de l'execution du module VB dans access

n°1701831
kiki29
Posté le 13-03-2008 à 16:01:44  profilanswer
 

Jour Bon, à adapter à ton contexte


Option Explicit
 
Sub Tst()
Dim Fichier As Variant
Dim sChemin As String
    sChemin = ThisWorkbook.Path
     
    ChDrive sChemin
    ChDir sChemin
    Fichier = Application.GetSaveAsFilename(FileFilter:="Fichiers Excel (*.xls), *.xls" )
    If Fichier <> False Then ThisWorkbook.SaveAs Filename:=Fichier
End Sub

n°1701847
Spayciz
Posté le 13-03-2008 à 16:15:59  profilanswer
 

kiki29 a écrit :

Jour Bon, à adapter à ton contexte


Option Explicit
 
Sub Tst()
Dim Fichier As Variant
Dim sChemin As String
    sChemin = ThisWorkbook.Path
     
    ChDrive sChemin
    ChDir sChemin
    Fichier = Application.GetSaveAsFilename(FileFilter:="Fichiers Excel (*.xls), *.xls" )
    If Fichier <> False Then ThisWorkbook.SaveAs Filename:=Fichier
End Sub



 
"Thisworkbook.path" et "getsaveasfilename" ne fonctionnent pas. Je ne sais pas si ça vient de là, mais j'utilise vb6.3
Je suis completement paumé, je n'y connais pas grand chose et j'ai une petit appli à faire pour le boulot

n°1701867
kiki29
Posté le 13-03-2008 à 16:37:44  profilanswer
 

Oops, effectivement c'est du code VBA Excel et tu es sous VBA Access ?
Inutile de reprendre dans ton post mon code cela n'apporte rien et encombre le paysage

Fichier = Application.FileDialog(msoFileDialogSaveAs)


Message édité par kiki29 le 13-03-2008 à 16:41:23
n°1701878
Spayciz
Posté le 13-03-2008 à 16:54:30  profilanswer
 

ok, et pour remplacer thisworkbook.path?
à quoi ça correspond?

n°1701907
kiki29
Posté le 13-03-2008 à 17:14:57  profilanswer
 

Une autre approche
Sous Excel cela donne le chemin sous lequel a été sauvé le classeur
peut etre à remplacer par ton chemin codé en hard, sinon

DoCmd.OutputTo acOutputQuery, "xxx", acFormatXLS

n°1702115
otobox
Maison fondée en 2005
Posté le 13-03-2008 à 23:06:43  profilanswer
 

Les boites de dialogues pour l'ouverture de fichiers et répertoires qui fonctionnent sous Excel et Word ne marche pas avec Access, du moins avec la version 97, peut être aussi avec les versions supérieures.
Essaye avec ça.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
mood
Publicité
Posté le 13-03-2008 à 23:06:43  profilanswer
 

n°1702219
Spayciz
Posté le 14-03-2008 à 10:39:09  profilanswer
 

Bouh ça marche pas...
Pourtant, ça n'a pas l'air compliqué comme ça: j'aimerais afficher une boite de dialogue dans laquelle je pourrais explorer le disque, rentrer un nom et récupérer le chemin avec le nom
Ce qui est chiant c'est que mon code est sous access (2003)

n°1702349
MATMAT2000
Posté le 14-03-2008 à 12:07:58  profilanswer
 

j'ai peut etre ça pour toi : j'utilise un formulaire pour lancer des rattachements de table, ces tables sont stockés à différents endroits de mon réseau, pour choisir le chemin d'accès, je fait choisir le chemin VIA  un formulaire et je stock ensuite le chemin dans un controle que j'utilise après pour faire ma sauce.
voici le code pour le bouton (RepProd) du formulaire qui donne accès au choix du chemin :
 
Private Sub SelRepProd_Click()
Me.RepProd = GetDirectory("Veuillez choisir le répertoire 'RACINE RÉELLES' : " )
If Me.RepProd = "" Then
Msgbox "Vous devez choix un répertoire RACINE RÉELLES", vbCritical
SelRepProd_Click
End If
End Sub

 
ET Voici le code correspondant à la fonction "GetDirectory" :
 
Option Compare Database
 
' ouvre une boite treeview
'Attribute VB_Name = "BrowseForFolderOrFile"
Option Explicit
'J. Walkenbach
Public Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type
 
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
 
Declare Function SHBrowseForFolder Lib "shell32.dll" _
    Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
 
 
 
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
 
    'Définit le Bureau comme dossier racine
    bInfo.pidlRoot = 0&
 
    'Invite de la boite de dialogue
    If IsMissing(Msg) Then
        bInfo.lpszTitle = "Répertoire cible : "
    Else
        bInfo.lpszTitle = Msg
    End If
     
    'Type de renvoi : dossier
'    bInfo.ulFlags = &H1
    'Type de renvoi : fichier
    bInfo.ulFlags = &H4000
 
 
    'Affiche la boite de dialogue
    x = SHBrowseForFolder(bInfo)
                         
    'Traite le résultat
    path = Space$(512)
    r = SHGetPathFromIDList(ByVal x, ByVal path)
    If r Then
        pos = InStr(path, Chr$(0))
        GetDirectory = Left(path, pos - 1)
    Else
        GetDirectory = ""
    End If
End Function

 
 
 
c'est un code trop compliqué pour moi que j'ai récupéré sur internet, je ne pourrais pas t'expliquer la signification des fonctions utilisées, mais en tout cas ça marche super bien pour choisir un chemin et le stocker dans un controle ensuite...

n°1702388
MATMAT2000
Posté le 14-03-2008 à 13:13:26  profilanswer
 

AU Fait, tu auras sans doute activée certaine référence bibliothèque si ce n'est pas fait...

n°1702527
Spayciz
Posté le 14-03-2008 à 15:56:17  profilanswer
 

je ne suis pas callé en formulaires. C'est quoi comme type de bouton?

n°1702603
MATMAT2000
Posté le 14-03-2008 à 16:58:17  profilanswer
 

C'est un bouton de commande simple, tu y accède quand tu es en mode création sur le formulaire avec la boite d'outil et tu colles la première partie du code en procédure évennementielle "sur click", la deuxième partie du code est un module.

n°1702628
Spayciz
Posté le 14-03-2008 à 17:29:51  profilanswer
 

Super, ça marche.
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boîte de dialogue pour copie d'un fichier

 

Sujets relatifs
trier un fichier xml en perlDécryptage d'un fichier
comparaison de registre et fichier .reg[Resolu]Mappage inprimante importé d'un fichier texte
Batch pour copier 1 fichier dans dossiers 1er niveauProbléme de copie de tableau et d'affichage
awk tri fichierRécupération données .html dans un fichier .txt
Plus de sujets relatifs à : Boîte de dialogue pour copie d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR