Saisie automatique et doublon
Bonjour, les amis
En ce dimanche orageux (chez moi)
J'ai ouvert mon classeur et me suit dit:
On est le 01/08/2010, pourquoi ne pas recommencer sur un nouveau classeur?
Donc je clique sur nouveau classeur et répond oui au message d'alerte.
le classeur ce ferme et je le réouvre quelques secondes plus tard.
Je contrôle si toute les infos des mois précédent, mois par mois et je vois que mes tableaux sont toujours complété.
Là je me remet en cause:
Mais pourquoi
Je suis vraiment très très
Suite des évènements:
Après m'être punis je modifie la ligne que vba-new à mis en (à corrigé).
Je crées un nouveau client avec facturation et là surprise surprise
message d'alerte (erreur 9) l'indice n'appartient pas à la sélection
je clique donc surdébogage pour voir le souci et l'erreur est donnée dans: Module / sub toilettage (With Sheets(F)) l'indice n'appartient pas à la sélection
Donc je referme mon classeur et n'enregistre pas les modifications
Merci encore et désolé de vous ennuyez avec tous ces problèmes
Amicalement
Leaner
Bonjour leaner
Donc je clique sur nouveau classeur et répond oui au message d'alerte.
le classeur ce ferme et je le réouvre quelques secondes plus tard.
ce n'est pas celui la que tu dois réouvrir mais un autre qui c'est créer et qui s'appel gestion client du 01082010
pour l'erreur c'est corrigé dans ce fichier
étant donné que l'on se sert du mois du date and picker,le mois indiqué est Août
la feuille du mois s'appelant Aout sans accent alors il ne trouve pas la feuille
de même tu trouveras dans la feuille caisse l'adresse de destination du nouveau classeur pour création
actuellement c'est dans mes documents
Bonsoir
Est ce que si je change ce chemin dans U3 de la feuille caisse, changera t'il sans rien détruire
C:\Documents and Settings\All Users.WINDOWS\Documents\Mes documents
Car comme je travaille avec windows 7 et excel 2007 ce chemin ne m'est pas accéssible
les chemins sont représenté différemment
Exp: ordinateur\Disque local (c:)\Mes Documents
Merci
Amicalement
Leaner
Bonsoir leaner
en principe c'est fait pour
Bonjour les amis
Si j'utilise ce code est ce que cela permettra d'enregistrer dans un dossier
Sub Sauvegarde()
'création d'une nouvelle sauvegarde dans c:\Mes Documents\Un Amour de Chien\Sauvegarde
Dim Conf As Byte, NomFichier As String, Chemin As String
Conf = MsgBox("Voulez-vous créer une nouvelle sauvegarde" & vbCrLf & " ", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation")
If Conf = vbNo Then Exit Sub
If Conf = vbYes Then
Peut tu me dire si c'est juste ou si il manque quelque chose
Merci
Amicalement
Leaner
Bonjour leaner, bob,
En fait ça c'est juste une demande de confirmation à laquelle si tu réponds non, on sort de la macro, et si oui...bah rienleaner a écrit :Si j'utilise ce code est ce que cela permettra d'enregistrer dans un dossier
Sub Sauvegarde()
'création d'une nouvelle sauvegarde dans c:\Mes Documents\Un Amour de Chien\Sauvegarde
Dim Conf As Byte, NomFichier As String, Chemin As String
Conf = MsgBox("Voulez-vous créer une nouvelle sauvegarde" & vbCrLf & " ", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation")
If Conf = vbNo Then Exit Sub
If Conf = vbYes Then
Quelques lignes plus bas, tu as le nouveau nom de fichier :
'donne le nom du ouveau fichier
NomFichier = "Gestion client du " & Format(Date, "ddmmyyyy")et ensuite, le chemin vers lequel tu veux enregistrer ton fichier :
If Sheets("Caisse").Range("U3") <> "" Then 'si la cellule contenant le chemin (U3) n'est pas vide
Chemin = Sheets("Caisse").Range("U3") & "\" & NomFichier 'alors le fichier sera enregistré à l'emplacement indiqué par U3 et sous le nom NomFichier
Else
Chemin = ActiveWorkbook.Path & "\" & NomFichier '& ".xls"'sinon le répertoire est celui du fichier actif
End Ifet c'est à partir de là :
'ENREGISTRER SOUS
ActiveWorkbook.SaveAs Filename:= _
Chemin, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=Falsequ'on enregistre le fichier.
Ensuite, comme l'indique Bob, on ferme le fichier en cours sans sauvegarder :
'ferme le fichier en cours sans sauvegarde
Application.QuitRésultat des courses, si tu veux enregistrer dans le répertoire c:\Mes Documents\Un Amour de Chien\Sauvegarde, faut mettre ça en U3 de la feuille Caisse. Ou bien le changer directement dans le code.
Re_
Merci vba-new et BOB
Je ne sais pas si je me suis bien exprimé, mon objectif est de garder à la fois l'ancien classeur dans un dossier à la fin de l'année( btn nouveau classeur), vu que le classeur redevient vierge. je peut le nommer ex: sauvegarde année 2010
Et la sauvegarde journalière dans un second (btn sauvegarde) vu qu'il n'efface rien. je peut le nommer sauvegarde jour 2010
tous cela dans C:\ Mes Documents\Un Amour de Chien
Alors j'ai bien compris je mets mon chemin en U3.
Mais là il m'en faut deux pour mes deux dossier.
comment je traite ça
Est ce que je mets à la suite en U3, ou faut il que je crées autrement
Je vous remercie de votre énorme patience avec moi et mon projet
Amicalement
Leaner
BOnjour leaner,
Pas vu passer ton message !
Tu parles de la macro Sauvegarde ? Si oui, elle semble juste. Donc qu'est-ce qui te fait dire que ça ne fonctionne pas ? As-tu un message d'erreur ? Si oui lequel ?
Vérifie bien que le dossier C:\Mes documents\Un Amour de Chien\Gestion Client Sauvegarde existe
Au sujet du chemin le dossier est bien:
C:\Mes Documents\Un Amour de Chien\Gestion Client Sauvegarde du
Quand je clique Btn sauvegarde dans UF le message apparait:
Erreur exécution 1004
La méthode save de l'objet_workbook a échoué
Ligne 260 col 15
par contre quand je clique sur nouveau classeur dans mon fichier:
C:\Mes Documents\un Amour de Chien\Gestion Client Nouveau Classeur du
Un fichier excel se crées
Donc je pense que mal grès le copier coller j'ai du faire boulette
Merci de ton intervention
Amicalement
Leaner
Re leaner,
J'avais pas vu qu'il y avait un bouton Sauvegarde dans ton userform
Remplace le code du bouton sauvegarde (qui correspond au bouton CommandButton9) par celui-ci :
Private Sub CommandButton9_Click()
'Sauvegarde du fichier
Call Sauvegarde
End SubJe pense que c'est ce que tu souhaites faire.
Re_
je crois que j'ai trouvé
Je travaille sur excell 2007 Quand je veut sauvegarder "un message me prévient sur le fait que si j'enregistre dans un format de fichier antérieur les fonctionnalités seront perdues, donc clic sur annuler et enregistrer dans un format qui prend en charge les fonctionnalités"
Est ce le fait que le classeur serait fait en excel 2003 et que le mien est 2007?
Y aurait il un code qui permet d'enregistré la sauvegarde direct en excel 2007?
Amicalement
Leaner
-- 03 Aoû 2010, 16:30 --
Nos message ce sont croisé
hors mis le message avertissement excel
ÇA FONCTIONNE
la sauvegarde écrase la précédente est il possible que ce ne soit pas le cas
Que dire de plus
Amicalement
Leaner
Bonjour leaner, forum,
On peut dire que les smileys, tu sais les utiliser
Ça fait quand même plus agréable à lire
Quand tu dis :
Tu parles bien de la sauvegarde journalière, macro "Sauvegarde" ?leaner a écrit :la sauvegarde écrase la précédente est il possible que ce ne soit pas le cas
(comme le nouveau classeur)
bonjour, vba-new
oui c'est exactement ça
ce qui me serais utile c'est d'avoir les sauvegardes journalières indépendantes les unes des autres
d'autre part que pense tu de ce message d'avertissement excel au sujet des versions 2003/2007 (voir post précédent)
Merci
Amicalement
Leaner
Re,
Ok. Remplace la macro sauvegarde par celle-ci :
Sub Sauvegarde()
'création d'une nouvelle sauvegarde dans c:\Mes Documents\Un Amour de Chien\Gestion client sauvegarde
Dim Conf As Byte, cpt As Byte
Dim NomFichier As String, Chemin As String, Repertoire As String, Fichier As String
Conf = MsgBox("Voulez-vous créer une nouvelle sauvegarde" & vbCrLf & " ", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation")
If Conf = vbNo Then Exit Sub
If Conf = vbYes Then
'donne le nom du nouveau fichier
NomFichier = "Gestion client sauvegarde du " & Format(Date, "ddmmyyyy")
If Sheets("Caisse").Range("U5") <> "" Then 'si la cellule contenant le chemin (U5) n'est pas vide
'alors le fichier sera enregistré à l'emplacement indiqué par U5 et sous le nom NomFichier
Repertoire = Sheets("Caisse").Range("U5").Value
Chemin = Repertoire & "\" & NomFichier & ".xlsm"
Else
Repertoire = ActiveWorkbook.Path
Chemin = Repertoire & "\" & NomFichier & ".xlsm" 'sinon le répertoire est celui du fichier actif
End If
'***On regarde si le fichier existe déjà.
'***Si oui on incrémente un compteur que l'on attachera au nom du fichier
cpt = 0
recherche:
ChDir Repertoire
Fichier = Dir(Repertoire & "\" & "*.xlsm")
Do While Fichier <> ""
If Fichier = NomFichier & ".xlsm" Then
cpt = cpt + 1
If cpt = 1 Then
NomFichier = NomFichier & "_" & Format(cpt, "000")
Else
NomFichier = Left(NomFichier, Len(NomFichier) - 3) & Format(cpt, "000")
End If
GoTo recherche
End If
Fichier = Dir ' fichier suivant dans le répertoire
Loop
Chemin = Repertoire & "\" & NomFichier & ".xlsm"
'ENREGISTRER SOUS
ActiveWorkbook.SaveCopyAs Chemin
'ferme le fichier en cours sans sauvegarde
Application.Quit
End If
End SubSi le fichier journalier existe, on ajoute "_001", "_002", "_003" etc.
Pour le message d'avertissement, c'est normal certaines fonctionnalités d'excel 2007 sont différentes de 2003.
Ça devrait être corrigé dans le code ci-dessus. J'ai remplacé les ".xls" par des ".xlsm" pour éviter le message d'avertissement.
re_
Merci vba-new
Là c'est du sérieux, il y as un moment que je m'incline, mais là
Je pense que l'ont est arrivé au bout
Que Pense tu de ton coté on est bon ou as tu des remarques
Si ce n'est pas le cas j'avoue pour tous ceux qui consulterons ces post que cela est fort sympathique d'aider les excelliens qui n'ont qu'une expérience limité.
je vous remercie à tous les deux vba-new et BOB71AU plus particulièrement, j'espère que l'on auras d'autres occasions de se croiser sur le forum.
Maintenant pour gérer ma clientèle je ne serai plus obliger de le faire à la mimine
Amicalement
Leaner Heureux
Salut leaner,
Merci pour les compliments
Bah personnellement je pense qu'il faudrait demander à Bob étant donné que c'est lui qui a fait la grande partie du travail. Mais c'est bizarre, ça fait un petit moment qu'on ne l'a plus vu ! Bob es-tu encore là ?leaner a écrit :Que Pense tu de ton coté on est bon ou as tu des remarques
Re_
BOB est peut être partis en vacance
Leaner
-- 05 Aoû 2010, 11:37 --
Bonjour, BOB et vba-new
Dite un petit pb se présente, rien de grave
Quand je demande un bilan du jour dans UF et que je choisi une date ou je n'ai pas eu d'entrée de caisse, ex: 02/08/2010 une fenêtre affiche une demande de débogage
Y aurait il moyen pour que cela ne se produise pas sur les jours de non entrée de caisse
MERCI
Amicalement
Leaner
Re,
Et si tu cliques sur débogage, quelle est l'erreur retournée ? A quelle ligne de quelle macro ?
Bonjour leaner,vba-new
me revoila
j'ai dû m'absenter 3 jours
merci d'avoir continué le post vba-new
j'en profite pour regarder tes lignes de code
comme ça, on est au moins deux à en profiter,merci
je pense que l'erreur vient du nom de la feuille Aout au lieu de Août que j'avais corrigé sur un fichier sinon je me trompe
A bientôt
Bonsoir, vba-new, BOB71AU
désoler de vous ennuyer avec ce petit problème
Voilà le message :
Erreur d'exécution 13
Incompatibilité de type
Ligne 102 colonne 4
" SOM = FormatNumber((SE + SC + SCB), 2) 'addition des différentes sommes pour faire le total"
Croyez vous que l'on peut y faire queleque chose
Amicalement
Leaner
-- 06 Aoû 2010, 16:43 --
Bonjour, les amis
Voila je viens de modifier le classeur avec des éléments, qui sont plus près de la réalité
Notamment les tarifs et les travaux.
je me rend compte que j'avais sous estimer le nombres de travaux
Classeur 1 j'ai 10 opération de travaux
Classeur 2 j'en ai besoin de 17
J'ai essayé de le faire sur le classeur 2, j'ai rajouté des colonnes manquantes et dans UF les labels et autres suppléments.
Mais maintenant j'ai le souci de faire fonctionner le tous
J'ai besoin de conseils
Pourriez vous me dire
Vaut il mieux mettre en état de fonctionnement le classeur2
ou
vaut il mieux continuer ce que l'on à créer, classeur1
Pouvez vous m'aider
Je vous remerci de l'attention que vous porterez à mes demandes
Amicalement
Leaner