Sauvegarde avec un n°

  • Initiateur de la discussion Initiateur de la discussion Dominic67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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

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
 
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...
 
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😀ocuments 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
 
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

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]
 
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
 
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 !!! 😱

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]
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
788
Retour