V
Vivien
Guest
Bonjour à tous le monde.
J'aurai besoin de quelqun pour me faire l'algorithme de ce programme.
Si c'est possible,ca serai bien que ça soit détaillé ligne par ligne ou programme par programme.
Merci.
Sub AutoSaveDoc()
'-----------------------------------------------------------------------------------------
'Répertoires de destination (Chemins à modifier)
Const Chemin1 As String = "C:\Confirmation Anomalie\"
Const Chemin2 As String = "C:\Action Commerce\"
Const Chemin3 As String = "C:\Archive\"
'-----------------------------------------------------------------------------------------
Dim Rep As String
Dim Fichier As String
With ThisWorkbook
'Incrémente le numéro si envoi Confirmation Anomalie
If .Sheets(1).Range("Statut").Value = 1 Then
.Sheets("feuil1").Range("g2") = .Sheets("feuil1").Range("g2") + 1
'Sauvegarde le fichier dans son répertoire d'origine
ThisWorkbook.Save
End If
'Incrémente le statut du fichier
MAJStatut
Select Case .Sheets(1).Range("Statut").Value
Case 2
Rep = Chemin1
Fichier = DetermNom(.Name) & DetermNum(.Sheets(1).Range("G2").Value)
Case 3
Rep = Chemin2
Fichier = .Name
Case 4
Rep = Chemin3
Fichier = .Name
End Select
'Oriente le fichier dans le répertoire de destination
On Error GoTo Erreur
.SaveAs Rep & Fichier
MsgBox "Le fichier " & DetermNom(.Name) & " a été sauvegardé à l'adresse " & .Path
End With
Exit Sub
Erreur:
MsgBox "Erreur d'enregistrement, le dossier de destination :" & vbCrLf & Rep & vbCrLf & " n'existe peut-être pas !"
End Sub
Private Function DetermNom(N As String) As String
'Détermine le nom du document
If Right(N, 4) = ".xls" Then
N = Left(N, Len(N) - 4)
End If
DetermNom = N & " "
End Function
Private Function DetermNum(N As Integer) As String
'Détermine le numéro formaté avec des 0 devant
DetermNum = String(6 - Len(CStr(N)), "0") & CStr(N)
End Function
Private Sub MAJStatut()
'Met à jour le statut du document
With ThisWorkbook.Sheets(1)
.Range("Statut").Value = .Range("Statut").Value + 1
End With
End Sub
De celui-ci aussi,si possible:
Private Sub Workbook_Open()
Dim V As Byte
Dim Sh As Byte
V = Sheets(1).Range("Statut")
For Sh = 1 To ThisWorkbook.Sheets.Count
Sheets(Sh).Visible = IIf(Sh = V, True, False)
Next Sh
End Sub
J'aurai besoin de quelqun pour me faire l'algorithme de ce programme.
Si c'est possible,ca serai bien que ça soit détaillé ligne par ligne ou programme par programme.
Merci.
Sub AutoSaveDoc()
'-----------------------------------------------------------------------------------------
'Répertoires de destination (Chemins à modifier)
Const Chemin1 As String = "C:\Confirmation Anomalie\"
Const Chemin2 As String = "C:\Action Commerce\"
Const Chemin3 As String = "C:\Archive\"
'-----------------------------------------------------------------------------------------
Dim Rep As String
Dim Fichier As String
With ThisWorkbook
'Incrémente le numéro si envoi Confirmation Anomalie
If .Sheets(1).Range("Statut").Value = 1 Then
.Sheets("feuil1").Range("g2") = .Sheets("feuil1").Range("g2") + 1
'Sauvegarde le fichier dans son répertoire d'origine
ThisWorkbook.Save
End If
'Incrémente le statut du fichier
MAJStatut
Select Case .Sheets(1).Range("Statut").Value
Case 2
Rep = Chemin1
Fichier = DetermNom(.Name) & DetermNum(.Sheets(1).Range("G2").Value)
Case 3
Rep = Chemin2
Fichier = .Name
Case 4
Rep = Chemin3
Fichier = .Name
End Select
'Oriente le fichier dans le répertoire de destination
On Error GoTo Erreur
.SaveAs Rep & Fichier
MsgBox "Le fichier " & DetermNom(.Name) & " a été sauvegardé à l'adresse " & .Path
End With
Exit Sub
Erreur:
MsgBox "Erreur d'enregistrement, le dossier de destination :" & vbCrLf & Rep & vbCrLf & " n'existe peut-être pas !"
End Sub
Private Function DetermNom(N As String) As String
'Détermine le nom du document
If Right(N, 4) = ".xls" Then
N = Left(N, Len(N) - 4)
End If
DetermNom = N & " "
End Function
Private Function DetermNum(N As Integer) As String
'Détermine le numéro formaté avec des 0 devant
DetermNum = String(6 - Len(CStr(N)), "0") & CStr(N)
End Function
Private Sub MAJStatut()
'Met à jour le statut du document
With ThisWorkbook.Sheets(1)
.Range("Statut").Value = .Range("Statut").Value + 1
End With
End Sub
De celui-ci aussi,si possible:
Private Sub Workbook_Open()
Dim V As Byte
Dim Sh As Byte
V = Sheets(1).Range("Statut")
For Sh = 1 To ThisWorkbook.Sheets.Count
Sheets(Sh).Visible = IIf(Sh = V, True, False)
Next Sh
End Sub