Choisir, sélectionner et déplacer un fichier depuis un classeur excel

jarod1990

XLDnaute Nouveau
Bonjour,
Je souhaiterai pouvoir avec une macro présente d'un classeur xls pouvoir sélectionner n'importe quel fichier et le déplacer dans un dossier. Tous cela à travers des boites de dialogue type "ouvrir un fichier" "enregistrer sous".

J'ai déjà construit ça mais le problème se trouve pour l'enregistrement. Comme je suis dans un classeurs xls, je ne parviens pas à enregistrer autre chose que ce classeurs xls (je souhaite enregistrer "Source"). Voici mon code:


Private Sub CommandButton1_Click()
Dim Source
Dim Destin
Source = Application.GetOpenFilename()
MsgBox Source
Destin = Application.GetSaveAsFilename()

Dim objOFS As Variant

Set objOFS = CreateObject("Scripting.FileSystemObject")

If (objOFS.FileExists(Source)) Then
objOFS.moveFile Source, Destin
End If

Set objOFS = Nothing

End Sub

Je vous remercie pour votre aide.
Jarod
 

skoobi

XLDnaute Barbatruc
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

Bonjour,

si c'est bien déplacer un fichier que tu veux faire, test ceci:

Code:
Sub test()
Dim Source
Dim Destin
Source = Application.GetOpenFilename()
MsgBox Source
Destin = Application.GetSaveAsFilename()
Name Source As Destin

End Sub
 

jarod1990

XLDnaute Nouveau
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

Bonsoir,
ça fonctionne pas. J'ai toujours le même problème de nom et de fichier que j'enregistre.
Je joins le fichier en pièce jointe peut être que ça simplifiera les échanges ...
Merci et bonne soirée.
Jarod
 

Pièces jointes

  • macroouvrir doc.xls
    25.5 KB · Affichages: 90

skoobi

XLDnaute Barbatruc
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

Qu'est-ce qui ne fonctionne pas?
Si je reprends ce que tu as dis, déplacer un fichier d'un répertoire à un autre (en le renommant si besoin) marche parfaitement chez-moi.
 

jarod1990

XLDnaute Nouveau
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

En effet, pardon, cela marche en parti sauf le nom qui n'est pas "par défaut" conserver.
Je pense qu'il doit falloir mettre quelques chose dans les parenthèses de Application.GetSaveAsFilename().

Bonne soirée et encore merci pour la réactivité.
Jarod.
 

skoobi

XLDnaute Barbatruc
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

Re,
Je pense qu'il doit falloir mettre quelques chose dans les parenthèses de Application.GetSaveAsFilename().
Exactement:
Destin = Application.GetSaveAsFilename("defaut.xls")
Bonne soirée.

Edit: En fait, tu peux y mettre aussi d'autres arguments facultatif:
GetOpenFilename, méthode

Cette méthode affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé par l'utilisateur sans réellement ouvrir les fichiers.
expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
expression Obligatoire. Expression qui renvoie un objet Application.
FileFilter Argument de type Variant facultatif. Chaîne spécifiant les critères de filtrage des fichiers.
Cette chaîne est constituée de paires de chaînes de caractères représentant le filtre de fichier suivies de la spécification de filtre de fichier à caractère générique de MS-DOS, dont chaque partie et chaque paire est séparée par une virgule. Chaque paire distincte est contenue dans la liste déroulante Type de fichier. Par exemple, la chaîne suivante spécifie deux filtres de fichiers (fichiers texte et macros complémentaires) : « Fichiers texte (*.txt),*.txt,Macros complémentaires (*.xla),*.xla ».
Pour utiliser les expressions multiples à caractère générique de MS-DOS pour un seul type de filtre de fichier, séparez les expressions à caractères génériques par des points-virgules ; par exemple, « Fichiers Visual Basic (*.bas; *.txt),*.bas;*.txt ».
Cet argument devient par défaut « Tous les fichiers (*.*),*.* » s'il n'a pas été spécifié.
FilterIndex Argument de type Variant facultatif. Spécifie les numéros d'index des critères de filtrage de fichier par défaut, de 1 au nombre de filtres spécifiés dans FileFilter. Le premier filtre de fichier est utilisé si l'argument n'a pas été spécifié ou s'il est plus grand que le nombre de filtres présents.
Title Argument de type Variant facultatif. Spécifie le titre de la boîte de dialogue. Si cet argument n'a pas été spécifié, le titre est « Ouvrir ».
ButtonText Argument de type Variant facultatif. Macintosh uniquement.
MultiSelect Argument de type Variant facultatif. Affectez lui la valeur True pour permettre la sélection de plusieurs noms de fichiers. Affectez lui la valeur False pour permettre la sélection d'un seul nom de fichier. La valeur par défaut est False.
Notes

Cette méthode renvoie le nom du fichier sélectionné ou le nom tapé par l'utilisateur. Le nom renvoyé est susceptible d'inclure une spécification de chemin. Si MultiSelect a la valeur True, la valeur renvoyée est un tableau des noms de fichiers sélectionnés (même si un seul nom de fichier est sélectionné). Renvoie la valeur False si l'utilisateur annule la boîte de dialogue.
Cette méthode est susceptible de modifier le lecteur ou le dossier en cours.
Exemple

Cet exemple montre comment afficher la boîte de dialogue Ouvrir, dont le filtre de fichier est défini en fichiers texte. Si l'utilisateur choisit un nom de fichier, le code affiche ce nom de fichier dans une boîte de message.
fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If
 
Dernière édition:

jarod1990

XLDnaute Nouveau
Re : Choisir, sélectionner et déplacer un fichier depuis un classeur excel

Merci beaucoup, j'y suis parvenu.
Voici le code que j'ai mis si cela peut servir à d'autre:

Private Sub CommandButton1_Click()
Dim Source
Dim Destin
Source = Application.GetOpenFilename()
MsgBox Source
Destin = Application.GetSaveAsFilename(Source)
Name Source As Destin
End Sub

Bonne soirée et merci beaucoup.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87