Private Sub CommandButton1_Click()
If ActiveSheet.Range("g6").Value = "DEVIS N°" Then
MsgBox " cette feuille est un devis, vous ne pouvez l'enregistrer"
Else
MsgBox "facture enregistree"
'Sub Enregistrer()
Dim tablo(1, 6)
Dim tabloErreur As Variant
Dim tabloMsg As Variant
Dim tabloFacture As Variant
Dim Msg As String
Dim Msg1 As String
Dim Msg2 As String
Dim F1 As Worksheet
Dim F2 As Worksheet
Dim Derli As Long
Dim i As Integer
'initialisation des variables
Set F1 = Sheets("Facture")
Set F2 = Sheets("Feuil1")
' affectaction des valeurs de cellules au tableau
tablo(1, 1) = F1.[C12]
tablo(1, 2) = F1.[H5]
tablo(1, 3) = F1.[J6]
tablo(1, 4) = F1.[g8]
tablo(1, 5) = F1.[H12]
tablo(1, 6) = F1.[J59]
'Gestion des cellules non renseignées
tabloErreur = Array("", "Date", "")
tabloMsg = Array("nom", "date", "numéro")
Msg1 = "Il n'y a pas de "
Msg2 = ", la facture ne peut pas être enregistrée."
'boucle pour l'affichage des cellules non remplies
For i = 3 To 1 Step -1
If tablo(1, i) = tabloErreur(i) Then Msg = Msg & vbLf & Msg1 & tabloMsg(i) & Msg2
Next i
'si une condition remplie, affichage du message d'erreur et fin de Sub
If Not Msg = "" Then MsgBox Msg: Exit Sub
' controle ligne TVA
For i = 15 To 52
If F1.Cells(i, "J").Value <> "" And _
F1.Cells(i, "K").Value = "" Then _
MsgBox "la cellule " & Cells(i, "K").Address & " est vide.": End
Next i
'Recherche de la dernière ligne de l'onglet "Feuil1"
Derli = F2.Columns("A").Find("*", , , , , xlPrevious).Row ' + 1
'Gestion des doublons
tabloFacture = F2.Range("C1:C" & Derli).Value
'si doublon, affichage du message et fin de Sub
If Not IsError(Application.Match(tablo(1, 3), tabloFacture, 0)) Then _
MsgBox "Le numéro de la facture """ & tablo(1, 3) & """ existe déja!": Exit Sub
'insertion des données sur Feuil1
Derli = Derli + 1
F2.Cells(Derli, "G").Value = Now
F2.Range("A" & Derli & ":F" & Derli).Value = tablo
Const DossierSauvegarde2 As String = "D:\Données\\Sauvegarde\Facture\"
Const DossierSauvegarde3 As String = "E:\Sauvegarde\"
Dim AWbk As Workbook
Dim LaFin As String
Dim Ext As String
Dim NomClasseur As String
Dim Nume As String
Set AWbk = ActiveWorkbook
'nom du classeur sans l'extension
NomClasseur = Left(AWbk.Name, Len(AWbk.Name) - InStr(1, StrReverse(AWbk.Name), "."))
'extension
Ext = Right(AWbk.Name, InStr(1, StrReverse(AWbk.Name), "."))
'date et heure
'LaFin = Format(Now, "dd-mm-yy hh-mm-ss")
'on définit ce que sera Nomfichier
'ce sera la cellule G3 + H3 de la feuille nommée Facture
Nomfichier = Sheets("Facture").Range("G6") & " " & Sheets("Facture").Range("J6") & " " & Sheets("Facture").Range("g8")
'LaFin = Cells("H8" & "J6").Value
'enregistrement des copies
Nume = [Facture!J6] ' vérifie j'ai mis J6
Sheets("Feuil1").Copy
ActiveWorkbook.SaveAs DossierSauvegarde & Nomfichier & " " & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.Close
Nume = [Facture!J6]
Sheets("Facture").Copy
ActiveWorkbook.SaveAs DossierSauvegarde2 & Nomfichier & " " & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.SaveAs DossierSauvegarde3 & Nomfichier & " " & Ext
ActiveWorkbook.Close
'If MsgBox("Ouvrir le dossier de sauvegarde ?", vbYesNo) = vbYes Then _
Shell "C:\WINDOWS\EXPLORER.EXE /n,/e," & ""D:\Données\", vbNormalFocus
'End Sub
End If
End Sub
Private Sub CommandButton2_Click()
If ActiveSheet.Range("g6") = "FACTURE N°" Then
MsgBox " cette feuille est une facture, vous ne pouvez l'enregistrer"
Else
MsgBox "devis enregistre"
'Sub Enregistrer_Devis()
Dim tablo(1, 6)
Dim tabloErreur As Variant
Dim tabloMsg As Variant
Dim tabloFacture As Variant
Dim Msg As String
Dim Msg1 As String
Dim Msg2 As String
Dim F1 As Worksheet
Dim F2 As Worksheet
Dim Derli As Long
Dim i As Integer
'initialisation des variables
Set F1 = Sheets("Facture")
Set F2 = Sheets("Feuil3")
' affectaction des valeurs de cellules au tableau
tablo(1, 1) = F1.[C12]
tablo(1, 2) = F1.[H5]
tablo(1, 3) = F1.[J6]
tablo(1, 4) = F1.[H8]
tablo(1, 5) = F1.[H12]
tablo(1, 6) = F1.[J59]
'Gestion des cellules non renseignées
tabloErreur = Array("", "Date", "")
tabloMsg = Array("nom", "date", "numéro")
Msg1 = "Il n'y a pas de "
Msg2 = ", le devis ne peut pas être enregistrée."
'boucle pour l'affichage des cellules non remplies
For i = 3 To 1 Step -1
If tablo(1, i) = tabloErreur(i) Then Msg = Msg & vbLf & Msg1 & tabloMsg(i) & Msg2
Next i
'si une condition remplie, affichage du message d'erreur et fin de Sub
If Not Msg = "" Then MsgBox Msg: Exit Sub
'Recherche de la dernière ligne de l'onglet "Feuil1"
Derli = F2.Columns("A").Find("*", , , , , xlPrevious).Row ' + 1
'Gestion des doublons
tabloDevis = F2.Range("C1:C" & Derli).Value
'si doublon, affichage du message et fin de Sub
If Not IsError(Application.Match(tablo(1, 3), tabloDevis, 0)) Then _
MsgBox "Le numéro du Devis """ & tablo(1, 3) & """ existe déja!": Exit Sub
'insertion des données sur Feuil1
Derli = Derli + 1
F2.Cells(Derli, "I").Value = Now
F2.Range("A" & Derli & ":F" & Derli).Value = tablo
Const DossierSauvegarde2 As String = "D:\Données\Sauvegarde\Devis\"
Const DossierSauvegarde3 As String = "E:\Sauvegarde\"
Dim AWbk As Workbook
Dim LaFin As String
Dim Ext As String
Dim NomClasseur As String
Dim Nume As String
Set AWbk = ActiveWorkbook
'nom du classeur sans l'extension
NomClasseur = Left(AWbk.Name, Len(AWbk.Name) - InStr(1, StrReverse(AWbk.Name), "."))
'extension
Ext = Right(AWbk.Name, InStr(1, StrReverse(AWbk.Name), "."))
'date et heure
'LaFin = Format(Now, "dd-mm-yy hh-mm-ss")
'on définit ce que sera Nomfichier
'ce sera la cellule G3 + H3 de la feuille nommée Facture
Nomfichier = Sheets("Devis").Range("G6") & " " & Sheets("Devis").Range("J6") & " " & Sheets("Devis").Range("H8")
'LaFin = Cells("H8" & "J6").Value
'enregistrement des copies
Nume = [Devis!J6]
Sheets("Feuil3").Copy
' 'ActiveWorkbook.SaveAs DossierSauvegarde & NomClasseur & " " & LaFin & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.SaveAs DossierSauvegarde & Nomfichier & " " & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.Close
Nume = [Devis!J6] ' vérifie j'ai mis J6
Sheets("Devis").Copy
ActiveWorkbook.SaveAs DossierSauvegarde2 & Nomfichier & " " & Ext ', xlExcel8 ' tu peux supprimer xlExcel8
ActiveWorkbook.SaveAs DossierSauvegarde3 & Nomfichier & " " & Ext
ActiveWorkbook.Close
'If MsgBox("Ouvrir le dossier de sauvegarde ?", vbYesNo) = vbYes Then _
Shell "C:\WINDOWS\EXPLORER.EXE /n,/e," & ""D:\Données\", vbNormalFocus
'End Sub
End If
End Sub