Crée un historique

Résolu
EnguerrandP - 7 mai 2013 à 15:58
 EnguerrandP - 9 mai 2013 à 17:18
Il faut que je crée un historique :
voila comment je voit le fonctionnement:
1- appuis sur le type de commandes (Email,Fax,Téléphone)
2- le programme va voir si dans le dossier "Historique" le dossier année "20XX" éxiste
3- Si il n'éxiste pas il le crée est dans se dossier il crée un classeur excel "Fs" et il y copie la fiche de commandes.
4- Sinon il va dans se dossier et regarde si le classeur "Fs" éxiste
5- Si il éxiste pas il le crée et il y copie la fiche de commandes.
6- Si il éxiste il y copie la fiche de commandes.

Voila le code que j'ai pour l'instant:

Dim Chemin As String
Dim CheminA As String
Dim CheminB As String
Chemin = "C:\Historique"
Année = "2013"

If Dir(Chemin & Année, 16) = "" Then

MkDir Chemin & Année
CheminA = "C:\Historique" & Année & ""
Application.ScreenUpdating = False
Sheets("Archive").Copy
With ActiveWorkbook
.SaveAs Filename:=CheminA & Fs
.Sheets("Archive").Name = "Archive" & "_" & Date_C
.Close
End With

ElseIf Dir(Chemin & Année, 16) <> "" Then

If ("C:\Historique" & Année & "" & Fs & ".xls") = "" Then

CheminB = "C:\Historique" & Année & ""
Application.ScreenUpdating = False
Sheets("Archive").Copy
With ActiveWorkbook
.SaveAs Filename:=CheminB & Fs
.Sheets("Archive").Name = "Archive" & "_" & Date_C
.Close
End With

ElseIf ("C:\Historique" & Année & "" & Fs & ".xls") <> "" Then



End If

End If

22 réponses

Re-Bonjour ucfoutu,
Je vient d'essayer d'utiliser ton codemais se na pas fait se que j'espérer .

voila comment je l'ai utiliser je suis sur que le n'on fonctionnement vient de moi mais je ne sais pas pourquoi :

      '1) on crée le dossier de toutes manières (et s'il existe déjà, on gère)
      
      On Error Resume Next
      MkDir "C:\Historique" & Année
      
      On Error GoTo 0
      
      '2) on regarde s'il est vide
      
      If Dir("C:\Historique" & Année) = "" Then
        MsgBox "Répertoire vide"
         Application.ScreenUpdating = False
         Sheets("Archive").Copy
           With ActiveWorkbook
               .SaveAs Filename:=CheminA & Fs
               .Sheets("Archive").Name = "Archive" & "_" & Date_C
               .Close
           End With
       End If
       
       'ou
       
       '3) on regarde s'il contient un dichier particulier
       
       If Dir("C:\Historique" & Année & "" & Fs & ".xls") <> "" Then
         MsgBox "Ajout feuille au classeur"
          Sheets("Archive").Copy
          ActiveSheet.Name = "Archive" & Date_C
          Sheets("Archive" & Date_C).Move.Workbooks (Fs)
       End If
       
       If Dir("C:\Historique" & Année & "" & Fs & ".xls") = "" Then MsgBox "création du classeur"
          Sheets("Archive").Copy
            With ActiveWorkbook
                .SaveAs Filename:=CheminA & Fs
                .Sheets("Archive").Name = "Archive" & "_" & Date_C
                .Close
            End With
        End If


Dans le répertoire viser il n'y a rien qui apparait et si je le supprime et recommence il crée bien le répertoire mais il n'y a toujour aucun classeur de visible.

Merci d'avoir pris le temps de me lire
0
Re Bonjour

' -Sauvegarde la commande dans le dossier historique '

      '1) on crée le dossier dans toutes les cas (et s'il existe déjà, on gère) :
     
      On Error Resume Next
      MkDir "C:\Historique" & Année
      
      On Error GoTo 0
      
      '2) on regarde si le répertoire est vide :
      
      If Dir("C:\Historique" & Année) = "" Then
      ' Si oui on crée le classeur fournisseur
         MsgBox "Répertoire vide"
         Sheets("Archive").Copy
           With ActiveWorkbook
               .SaveAs Filename:="C:\Historique" & Année & Fs & ".xls"
               .Sheets("Archive").Name = "Archive" & "_" & Date_C
               .Close
           End With
           
      'ou
      '3) Sinon on regarde s'il contient un fichier particulier
      ElseIf Dir("C:\Historique" & Année) <> "" Then

             If Dir("C:\Historique" & Année & "" & Fs & ".xls") = "" Then
             ' Si le classeur n'éxiste pas on le créé
                MsgBox "création du classeur"
                Sheets("Archive").Copy
                  With ActiveWorkbook
                      .SaveAs Filename:="C:\Historique" & Année & Fs
                      .Sheets("Archive").Name = "Archive" & "_" & Date_C
                      .Close
                  End With
                  
             End If
             
             If Dir("C:\Historique" & Année & "" & Fs & ".xls") <> "" Then
             ' Sinon on y rajoute une feuille
                MsgBox "Ajout feuille au classeur"
                Sheets("Archive").Copy
                ActiveSheet.Name = "Archive" & Date_C
                Sheets("Archive" & Date_C).Move.Workbooks (Fs)
              End If

           End If
  End If


Voila je n'ai pas fais beaucoup de modification mais il y a des résultat.
Maintenant , lorsque je fais un archivage
il crée bien un classeur si on change de fournisseur la aussi il crée le classeur
Mais lorsque l'on veut faire un archivage cher un fournisseur deja utiliser il demandes si on veut remplacer le fichier deja existant par le nouveau est si on refuse il nous dit qu'il y a une erreur dans le save as.

Merci pour votre attention.
0