creation de fenetres a l'aide de macros
Dernière réponse : dans Programmation
Lu je suis nouveau en programmation VBA
J'aimerai savoir comment on enregistre un fichier dans un endroits donner grace a une macro
Merci d'avance
J'aimerai savoir comment on enregistre un fichier dans un endroits donner grace a une macro
Merci d'avance
Autres pages sur : creation fenetres aide macros
Lassé par la pub ? Créez un compte
Arghhhh. x_x Ici, c'est particulier : c'est chacun sa question.
Tu vois tu as créé un sujet "Programmation Macros". Tu n'as quand même pas l'intention que toutes les questions concernant la programmation et les macros tombent ici ?
Bon, dans ce sujet http://www.presence-pc.com/forum/ppc/Programmation/aide... c'est pareil. Le titre est tellement évasif que tu penses légitime d'y poster ta question. Donc, je t'invite à modifier le titre de ton sujet et à attendre les réponses ici. Pour cela clique sur
et changes-en.
Merci
Tu vois tu as créé un sujet "Programmation Macros". Tu n'as quand même pas l'intention que toutes les questions concernant la programmation et les macros tombent ici ?
Bon, dans ce sujet http://www.presence-pc.com/forum/ppc/Programmation/aide... c'est pareil. Le titre est tellement évasif que tu penses légitime d'y poster ta question. Donc, je t'invite à modifier le titre de ton sujet et à attendre les réponses ici. Pour cela clique sur
et changes-en.Merci
Citation :
Enregistrer un fichier dans un endroits donnéQu'est-ce qui pose problème ? Juste donner un nom et/ou un chemin au fichier ou plus globalement comment enregistrer ?
N'hésite pas à publier un bout de code pour qu'on se rende compte de ce qui te manque. (/!\ à l'art de publier du code : cf. les règles )
For i = 1 To nbfiles specfichier = .FoundFiles(i) Workbooks.Open Filename:=specfichier specfichier = specfichier & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=specfichier, FileFormat:=xlNormal ActiveWorkbook.Close Next i
voici un bout du code. Je cherche a ouvrir des fichiers texte, Published...
Puis il faut les sauver sous format excel, et donc mon probleme est :
qaund j'enregistre, le fichier se trouve a l'enplacement du fichier source,
donc si j'execute le programme plusiers fois, je me trouve avec un nom de fichier trop long :
ex : nomfichier.xls.xls donc je voudrai sauvegarder les fichiers dans un autre dossier
En théorie c'est tout bête le chemin contenu dans specfichier est le chemin complet du fichier que tu ouvres : donc "c:\toto.txt" par exemple et devient "c:\toto.txt.xls" ce qui n'est pas terrible.
Donc créer tout bêtement une variable pour tes fichiers de sorti.
Tu peux te servir par exemple de :
- Une variable avec le répertoire de sorti
- tu récupères le nom du classeur avec activeworkbook.name
- tu vires l'extention avec instr() left() mid()
- tu rajoutes l'extention désirée.
- tu créé ton chemin complet de sorti...
Donc créer tout bêtement une variable pour tes fichiers de sorti.
Tu peux te servir par exemple de :
- Une variable avec le répertoire de sorti
- tu récupères le nom du classeur avec activeworkbook.name
- tu vires l'extention avec instr() left() mid()
- tu rajoutes l'extention désirée.
- tu créé ton chemin complet de sorti...
C'est simple si tu as une variable contenant "c:\toto.txt" et tu veux avoir au final une copie excel des fichiers dans un autre repertoire et en format xls. Qu'est que qu'il faut faire pour cela
Récupérer le nom du fichier : Activeworkbook.name => toto.txt
Trouver la position de .txt dans le nom : Instr() => 5
Récupérer la partie à gauche de cette position : left() => toto
rajouter le repertoire et la nouvelle extention : "C:\sorti\toto.xls"
ici le mid ne sert pas mais ca fait partie des fonctions utiles à connaitre.
Récupérer le nom du fichier : Activeworkbook.name => toto.txt
Trouver la position de .txt dans le nom : Instr() => 5
Récupérer la partie à gauche de cette position : left() => toto
rajouter le repertoire et la nouvelle extention : "C:\sorti\toto.xls"
ici le mid ne sert pas mais ca fait partie des fonctions utiles à connaitre.
Si on reprend ton programme...
Normalement FoundFiles provient de l'utilisation de application.FileSearch normalement ca renvoie le nom et le chemin du fichier. donc specfichier doit valoir <chemin> + <nom> + <extention>
Tu veux sauvegarder le meme nom de fichier en changeant le répertoire et l'extention. Donc en gros i te faut une variable pour le répertoire et une pour le nom du fichier.
Pas plus compliquer que ca
For i = 1 To nbfiles specfichier = .FoundFiles(i) Workbooks.Open Filename:=specfichier specfichier = specfichier & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=specfichier, FileFormat:=xlNormal ActiveWorkbook.Close Next i
Normalement FoundFiles provient de l'utilisation de application.FileSearch normalement ca renvoie le nom et le chemin du fichier. donc specfichier doit valoir <chemin> + <nom> + <extention>
Tu veux sauvegarder le meme nom de fichier en changeant le répertoire et l'extention. Donc en gros i te faut une variable pour le répertoire et une pour le nom du fichier.
Dim sRep as variant Dim sfile as variant sRep = "C:\output\" 'par exemple For i = 1 To nbfiles specfichier = .FoundFiles(i) Workbooks.Open Filename:=specfichier sfile = activeworkbook.name 'renvoie le nom du classeur sans le chemin sfile = left(sfile, instr(sfile,".") -1) & ".xls" 'change l'extention Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=sRep & sfile, FileFormat:=xlNormal ActiveWorkbook.Close Next i
Pas plus compliquer que ca
oui sa je sais pour ce type de bouton mais c un bouton qui se trouve dans une fenetre apart
voici le programme en entier :
vous allez voir que l'on doit entrer un nom pour creer un dossier et je veux que quand on appui sur cancel,
on quitte le programme
(NB : il y a des choses en neerlandais je vous prie de m'en excuser mais je fais un stage chez thomson merci)
voici le programme en entier :
Option Explicit Public dossier 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, path As String, r As Long, x As Long, pos As Integer bInfo.pidlRoot = 0& If IsMissing(Msg) Then bInfo.lpszTitle = "" Else bInfo.lpszTitle = Msg End If bInfo.ulFlags = &H1 x = SHBrowseForFolder(bInfo) 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 Sub File_Openen() 'Doel : Files verwerken ' Dim fs, i, namefile, FileNumber, specfichier, nbfiles, r, Srep, folder, ct dossier = GetDirectory("Kies een folder") If dossier <> "" Then Set fs = Application.FileSearch With fs .LookIn = dossier .SearchSubFolders = True .FileType = msoFileTypeAllFiles If .Execute() > 0 Then nbfiles = .FoundFiles.Count MsgBox "Er zijn " & nbfiles & " Files." folder = InputBox(ct, "choisir un nom : ", "nom fichier") Srep = "C:\Documents and Settings\boermansj\My Documents\" & folder & "/" MkDir ("C:\Documents and Settings\boermansj\My Documents\" & folder) For i = 1 To nbfiles specfichier = .FoundFiles(i) Workbooks.Open Filename:=specfichier namefile = ActiveWorkbook.Name namefile = Left(namefile, InStr(namefile, ".") - 1) specfichier = namefile & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=Srep & specfichier ActiveWorkbook.Close Next i Else MsgBox "Geen files gevonden." End If End With End If End Sub
vous allez voir que l'on doit entrer un nom pour creer un dossier et je veux que quand on appui sur cancel,
on quitte le programme
(NB : il y a des choses en neerlandais je vous prie de m'en excuser mais je fais un stage chez thomson merci)
Citation :
Faut associer du code à ton bouton ![[:spamafote] [:spamafote]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/3e/46/spamafote.gif)
Pour quitter :
Private Sub CommandButton1_Click() Unload Me End Sub
Stro facile
Argggh. Pas compris que tu parlais de InputBox
J'ai l'air con maintenant, et Freeman en profite.
Spoiler
Heureusement que je l'ai mouché sur le code modifiable des modules, sinon ...
J'avais mal regardé tu créé un dossier donc c'est moins utile.
Pour le cas "" il suffit de tester la valeur de folder après l'inputbox, si il vaut "" c'est qu'il y a eu annulation enfin vérifie sur l'aide de la fonction.
Par contre je comprend pas ceci : "C:\Documents and Settings\boermansj\My Documents\" puisque juste avant tu récupère un répertoire dans la variable dossier?
Pour le cas "" il suffit de tester la valeur de folder après l'inputbox, si il vaut "" c'est qu'il y a eu annulation enfin vérifie sur l'aide de la fonction.
Par contre je comprend pas ceci : "C:\Documents and Settings\boermansj\My Documents\" puisque juste avant tu récupère un répertoire dans la variable dossier?
je l'ai fais comme sa pour pouvoir changer le chemin.
car ce programme ne sera pas executer que sur mon pc et aussi je ne veux pas que les fichiers enregistrer soient avec les fichiers ouvert voila pour cela
J'ai un autre probleme un peu plus compliquer mais il faut que je vous donne un fichier comment faire ?
car ce programme ne sera pas executer que sur mon pc et aussi je ne veux pas que les fichiers enregistrer soient avec les fichiers ouvert voila pour cela
J'ai un autre probleme un peu plus compliquer mais il faut que je vous donne un fichier comment faire ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumBesoin d'aide pour la création d'un petit programme.
- Forumbesoin d'aide pour création diaporama
- ForumBesoin d'aide pour création d'un socièté par correspondance
- Forumbesoin d'aide et conseils creation entreprise informatique
- Forum[aide] création de page perso chez free
- Forumcréation boitier tuning [aide]
- Forumbesoin d'aide pr la création d'un serpent
- Forumbesoin d'aide pour création d'un réseau wifi
- Forumbesoin d'aide =>creation de pc environ 600€
- Voir plus
![[:zeb] [:zeb]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/51/a1/zeb.gif)
C'est Application. (avec le point) qu'il n'est pas nécessaire de mettre. Tu confirmes BiereBlanche ?