Sauvegarde avec un n°

D

Dominic67

Guest
Bonsoir

Ayant crée un petit programme me permettant de rermplir des quittances de loyer, par contre au niveau de la sauvegarde je ne sais trop comment faire.....
Je pense eventuellement recuperer la valeur d'une cellule ( N° de quittance) pour en faire la sauvegarde.
Mon idée serait de cliquer sur un bouton qui ferait ensuite la sauvegarde automatiquement en recuperant ce N°
Merci pour votre aide :S
 

N_Christian

XLDnaute Occasionnel
Bonsoir Dominic67,

je te conseille un format du type:
2005_09_14

de cette façon, le rangement dans l'explorateur sera dans l'ordre et tu auras directement la date de tes quittances. moi je dis cela mais si tu preferes un N° ..

Dim NomFichier As String

NomFichier = [A1] ' cellule qui contien le numéro
' si le numéro est un chiffre utiliser str([A1])

ChDir 'C:\\Christian\\Mes fichiers reçus'
ActiveWorkbook.SaveAs Filename:='C:\\Mes fichiers Quittance\\' & NomFichier & '.xls', _
FileFormat:=xlNormal, Password:='', WriteResPassword:='', _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


essayes cette méthode.. je l'utilise souvent et si le fichier existe déja tu as une alerte...

A+ Christian

heu..., le chemin n'est pas complet... il manque les slashs.. ( alt Gr 8 du clavier ).. A+ Christian

Message édité par: N_Christian, à: 14/09/2005 00:46
 

Bricofire

XLDnaute Impliqué
Bonsoir Dominic67, N_Christian :)

En PJ, un fichier avec un bouton.

Le code est commenté, attention toutefois, si tu l'utilises seul, no pb, sinon il faudra se soucier de ce que l'utilisateur pourrait faire... :whistle: utiliser la commande Sauvegarder direct, sauvegarder sous etc... ce qui change tout; Ca peut bien sur se gérer en vba, mais ça devient plus sensible... :)

En rajoutant un chiffre à chaque fois et en cliquant le bouton, tu auras les fichiers qui se succèderont...


Option Explicit

Private Sub Cmd1_Click()
Dim Nomfic As String

On Error GoTo Erreur 'empêche un plantage si fichier existant et réponse Non...
Nomfic = Range('B4') ' ça marche et enregistre dans l'endroit où le fichier
'a été ouvert (idem qu'indiqué dans sauvegardé sous par défaut)
'Nomfic = 'C:\\Test\\' & Range('B4') ' enregistre dans un répertoire test sur C:
' on peut créer le chemin voulu...
ActiveWorkbook.SaveAs Filename:=Nomfic

Exit Sub
Erreur: End
End Sub


Bonne nuit :)

Edition : manque les slash dans les chemins, voir le code dans fichier :side:

Bfr [file name=Abracadabra56.zip size=10055]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Abracadabra56.zip[/file]

Message édité par: bricofire, à: 14/09/2005 01:38
 

Pièces jointes

  • Abracadabra56.zip
    9.8 KB · Affichages: 24

N_Christian

XLDnaute Occasionnel
Bonjour le fil,

Bien vu l'astuce pour le plantage.. c'est vrai qu'un autre utilisateur n'est pas forcément à la cool des 'debug' ou 'fin' ect..
Merci

j'ai vu aussi la ligne exit sub.. tu peux la mettre sans modération ( j'ai eu des erreurs avec plusieurs manips et l'utilisation de la commande on erreur goto ( sans les resume.. ).. mais c'est un peu hors sujet si un jour j'ai le cas je viendrai en parler..

A+ Christian
 

_Thierry

XLDnaute Barbatruc
Bonjour Dominic, Bricofire, Christian

Si on parle de gestion d'erreur, il est toujours préférable d'aller un peu plus à fond des chose car, on Error Goto ... Pourrait devenir GoTo 'Hell' si on ne fait pas attention à tout !!

Voici pour le cas de figure de ce Fil de Discussion :

Option Explicit

Const Chemin As String = 'C:\Documents and Settings\Thierry\My Documents\' 'A adapter

Private Sub Cmd1_Click()
Dim Nomfic As String

Nomfic = Range('B4')

On Error GoTo Erreur
ThisWorkbook.SaveAs Chemin & Nomfic

Exit Sub
Erreur:
   
If Err = 1004 Then
       
Select Case Err.Source
           
Case 'Microsoft Excel'
                MsgBox 'Le Nom de Fichier ' & Nomfic & ' n
'est pas valide'
           
Case 'VBAProject'
                MsgBox 'Opération Annullée par Utilisateur'
           
Case Else
                MsgBox 'Erreur Non Gérée ' & Err.Number & ' ' & Err.Description
       
End Select
   
Else
        MsgBox 'Erreur Non Gérée ' & Err.Number & ' ' & Err.Description
   
End If
End Sub


Bon Appétit
[ol]@+Thierry[/ol]

PS Pour Brico, ceci est inutile et dangereux
Exit Sub
Erreur: End
End Sub

Si jamais tu as des variables publiques ou si tu as un UserForm ouvert 'Baouhooum' !!!! Le End ne sert pas puisque sous le Label Erreur on a la end Sub...
 
D

Dominic67

Guest
Bonjour

J'essaye envain et a chaque fois il me donne des defauts ???? je ne suis pas un pro dans le domaine.
Je ne trouve pas le pb

Private Sub CommandButton5_Click()

Dim NomFichier As String

NomFichier = ([j1]) ' cellule qui contien le numéro
' si le numéro est un chiffre utiliser str([A1])


ChDir 'C:\\Documents and Settings\\Propriétaire\\Mes documents\\Gestion Locative Obernai\\Mes fichiers Quittance'
ActiveWorkbook.SaveAs Filename:='C:Documents and Settings\\Propriétaire\\Mes documents\\Gestion Locative Obernai\\Mes fichiers Quittance& & NomFichier & '.xls', _
, FileFormat:=xlNormal, Password:='', WriteResPassword:='', _
ReadOnlyRecommended:=False, CreateBackup:=False

Unload UserForm1


End Sub
 

N_Christian

XLDnaute Occasionnel
Re: le fil

j'ai repris les exemples de Bricofure et de Thierry... j'ai construit un petit exemple... il te faut un répertoire sur D:MesQuittances sinon tu adaptes la macro..

Voila... il manque un truc.. si le répertoire n'existe pas... Alors le créer.. non..?

Voila le fichier..
A+ Christian
[file name=Quittance.zip size=11302]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Quittance.zip[/file]
 

Pièces jointes

  • Quittance.zip
    11 KB · Affichages: 46
  • Quittance.zip
    11 KB · Affichages: 37
  • Quittance.zip
    11 KB · Affichages: 36

_Thierry

XLDnaute Barbatruc
Re Bonjour ce Fil

Petite recommandation pour Christian

A éviter en VBA :
NomFichier = 'Q_' & Format(Str([B5]))

On a dans le Forum 1ere Génération bien polémiqué sur l'usage des Crochets qui signifient 'Evaluate' et ralentissent la référence à une range. (Lien supprimé)

On préfèrera une référence à une range avec une Syntax quoique plus longue à saisir bien plus Directe :

Soit :
Range('B5')

Soit:
Cells(5,2)

Par ailleurs pour ta conversion en String on peut le faire Directos aussi avec la Function de Conversion de Type : CStr, comme ceci :

NomFichier = 'Q_' & CStr(Range('B5'))

Et tant que j'y suis pour eviter le Select de Feuille on peut aussi faire ceci :
With Sheets('Q-12')
NomFichier = 'Q_' & CStr(.Range('B5'))
End With
(Attention au Petit Point devant .Range)

Ceci dit, comme je dis souvent VBA a cette force qui permet à tout un chacun de développer selon ses moyens et compétences... Et c'est ceci qui est super !!! et qui est évolutif...pour tout le monde !

Bon Aprèm
[ol]@+Thierry[/ol]
 

Bricofire

XLDnaute Impliqué
Bonsoir Dominic, N_christian, _Thierry :)

Ca fait plaisir de voir qu'on s'intéresse à son code... :)

Pour le On error, c'est comme le goto avec étiquette, j'utilise rarement car contreversé, mais c'est vrai qu'un peu de fainéantise.... parceque tenter de tout prévoir.... c'est plus long que le prog lui même :)

Quand à la structure Exit sub avant erreur, je vais botter les F..... à J. Walkenbach car même s'il dit bien que son bouquin est pour les nuls, quand même .... :lol: :) :woohoo:

En tous les cas merci encore _Thierry, l'intérêt c'est que pour le 500 ème si je fais une fonction compare 1-50 à 450-500, j'obtienne une courbe ascendante en performance & qualité :)

En tous les cas y a de quoi donner des boutons, et c'est ce que demandait Dominic non ?
:)

Hier j'ai fait trop vite on error goto Dodo, maintenat j'ai un truc de plus à étudier ARf !

Bonne nuit à tous,

Bfr
 

_Thierry

XLDnaute Barbatruc
Bonsoir Bricofire, le fil

Rapidos avant dodo,

Quand à la structure Exit sub avant erreur, je vais botter les F..... à J. Walkenbach

Non non le Exit Sub est indispensable avant un Label (étiquette, scuzez moi, je bosse en US) de gestion d'erreur !!! :eek:

Non non non dans mon message pour toi, j'ai mis en BOLD

Erreur: End

Et ça John ne le préconsie pas !!!

Bonne Nuit
[ol]@+Thierry[/ol]
 

N_Christian

XLDnaute Occasionnel
Bonjour le fil,

J'ai regardé vite fait, merci Milchel et Bricofire de vos précieux conseil, on en reparle plus tard..... j'ai un grave probléme avec mon PC... j'essaye sur le Forum de PC Astuce mais j'ai peur que mon Windows soit mort...

Je vous laisse..
J'ai pas vu la réponse de Dominic67.. ça marche..?

A+ Christian
 

Bricofire

XLDnaute Impliqué
Bonsoir le fil,

Merci Thierry ! ,

Ouarf, tu m'as sauvé une main, j'avais inversé Exit Sub et END, et je ne comprenais pas ton dernier post car c'était tellement gros que mes yeux étaient inflencés par ma pensée (H.S.), j'en aurai mis ma main à couper.... ;). Vrai j'ai du relire, ta mise en gras n'était donc pas inutile, purée comment peut-on poster des conneries pareilles :) , heureusement qu'il y en a qui veillent....(les anges dont parle tant Didique ? )
Donc Pardon à J.W., j'achèterai un autre de ses bouquins pour la peine :)
Ben je crois que je suis passé à côté d'un mauvais pli à prendre....
Va falloir inventer le ZOP à la puissance deux !

Bon j'y vais .... :S

Bonne soirée,

Bfr
 

Discussions similaires

Statistiques des forums

Discussions
300 891
Messages
1 988 185
Membres
210 098
dernier inscrit
sidimouh