patchap40
Messages postés29Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention22 mai 2006
-
11 mai 2006 à 09:08
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
11 mai 2006 à 15:34
Private Sub BoutArchivage_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim NomArchiv As String
Dim MyYear, MyMonth, MyDate
Dim str As String
MyDate = Now() ' Attribue une date.
MyMonth = Month(MyDate) ' MyMonth contient le mois.
If MyMonth < 10 Then
MyMonth = "0" & MyMonth
End If
MyYear = Year(MyDate) ' MyYear contient l'année
str = MyMonth & MyYear
NomArchiv = "pâtes" & str
On Error GoTo non
NomArchiv = InputBox("Nom du fichier de sauvegarde:", "Sauvegarde sur disque", NomArchiv)
GoTo fin
pb:
MsgBox "Problème à l'écriture de c:" & NomArchiv
non:
fin:
End Sub
Bonjour, j'aimerai savoir si il était possible d'enregistrer un fichier sans avoir à écrire son chemin complet dans le code (voir ligne en gras), en l'occurence ici un fichier excel nommé pâtesMMAA, en fait ma question est peut on choisir l'emplacement de son fichier, qu'une fenêtre apparaisse comme sous word ou sous excel, merci
ps : rien à voir mais y'a til une balise code ?
A voir également:
Certains fichiers de cette page web ne se trouvent pas à l'emplacement prévu
patchap40
Messages postés29Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention22 mai 2006 11 mai 2006 à 14:56
c'est bon j'ai réussi avec ma nouvelle solution
je met le code si ça peut en aider certains
merci de ton aide mortalino ;)
'Déclaration de l API
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) _
As Long
'Structure du fichier
Private Type OPENFILENAME
lStructSize As Long
hWndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Sub BoutArchivage_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim NomArchiv As String
Dim MyYear, MyMonth, MyDate
Dim str As String
MyDate = Now() ' Attribue une date.
MyMonth = Month(MyDate) ' MyMonth contient le mois.
If MyMonth < 10 Then
MyMonth = "0" & MyMonth
End If
MyYear = Year(MyDate) ' MyYear contient l'année
str = MyMonth & MyYear
NomArchiv = "liqueurs" & str
On Error GoTo non
'NomArchiv = InputBox("Nom du fichier de sauvegarde:", "Sauvegarde sur disque", NomArchiv)
' NomArchiv = InputBox("Nom du fichier de sauvegarde:", "Sauvegarde d'un fichier sur disquette")
If NomArchiv = "" Then GoTo non
On Error GoTo pb
End Sub
Function EnregistrerUnFichier(Handle As Long, Titre As String, _
NomFichier As String, Chemin As String) As String
'EnregistrerUnFichier est la fonction a utiliser dans votre formulaire pour ouvrir _
la boîte de dialogue d'enregistrement d'un fichier.
'Explication des paramètres
'Handle = le handle de la fenêtre (Me.Hwnd)
'Titre = Titre de la boîte de dialogue
'NomFichier = Nom par défaut du fichier à enregistrer
'Chemin = Chemin par défaut du fichier à enregistrer
Dim structSave As OPENFILENAME
With structSave
.lStructSize = Len(structSave)
.hWndOwner = Handle
.nMaxFile = 255
.lpstrFile = NomFichier & String$(255 - Len(NomFichier), 0)
.lpstrInitialDir = Chemin
.lpstrFilter = "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0) 'Définition du filtre (aucun)
.Flags = &H4 'Option de la boite de dialogue
End With
If (GetSaveFileName(structSave)) Then
EnregistrerUnFichier = Mid$(structSave.lpstrFile, 1, InStr(1, structSave.lpstrFile, vbNullChar) - 1)
End If
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 11 mai 2006 à 10:54
T'es sous word ou excel ?
Normalement il n'y a pas besoin de rajouter un composant, dans l'aide du logiciel, il te le propose.
Au pire, il y a le composant Common dialog (Cdlg).
En attendant je regarde et je fais des test.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 11 mai 2006 à 13:06
désolé pour retard, bcoup de taf d'un coup...
Bref, insère un UserForm, tu devrais avoir un cadre avec qui s'affiche, contenant les contrôle habituels (TextBox, CommandButton...) ; en faisant un click droit dessus, il te propose "controles supplémentaires" :
coche "Microsoft Common Dialog Control" et valide. Il s'insère dans le cadre des controles.
Ensuite place le sur le UserForm
puis
Private Sub UserForm_Initialize()
With CommonDialog1
.InitDir = "C:"
.ShowSave
End With
End Sub