1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| Sub Main()
Dim i As Long
Dim Entree As Workbook
Const Fichier As String = "C:\Documents and Settings\user\Bureau\Travaux excel\test final\Appro matieres.xlsx"
Call Enregistrement
Application.ScreenUpdating = False
If Dir(Fichier) <> "" Then 'vérifier que le fichier existe bel et bien
Set Entree = Workbooks.Open(Fichier) 'on ouvre le fichier Appro matiere.xlsx
With ThisWorkbook.Worksheets("Feuil1")
For i = 7 To 35 Step 2 'on parcourt toutes les cellules de notre plage D1,D3...D19 (Adapte le 19 à ta plage)
COPIEDONNEES Entree, .Range("AC" & i)
Next i
End With
Entree.Close True 'On ferme le fichier Appro matiere.xlsx en enregistrant les modifications
ActiveWorkbook.Close savechanges:=True 'On ferme le classeur actif
Set Entree = Nothing 'on libère la variable Entree
End If
End Sub
Private Sub COPIEDONNEES(ByVal Wbk As Workbook, ByVal c As Range)
If IsEmpty(c) Then
If Not IsEmpty(c.Offset(0, -26)) Then
With Wbk.Sheets("Feuil1")
.Rows(2).Insert Shift:=xlDown
.Range("B2").Value = c.Offset(0, -28).Resize(1, 1).Value
.Range("C2").Value = c.Offset(0, -26).Resize(1, 1).Value
.Range("D2").Value = c.Offset(1, -26).Resize(1, 1).Value
.Range("E2").Value = c.Offset(0, -21).Resize(1, 1).Value
.Range("G2").Value = c.Offset(0, -16).Resize(1, 1).Value
.Range("F2").Value = c.Offset(0, -11).Resize(1, 1).Value
.Range("H2").Value = c.Offset(0, -8).Resize(1, 1).Value
.Range("I2").Value = c.Offset(0, -5).Resize(1, 1).Value
.Range("J2").Value = c.Offset(0, -3).Resize(1, 1).Value
.Range("M2").Value = c.Offset(0, 0).Resize(1, 1).Value
.Range("A2").Value = c.Parent.Range("Y4")
.Range("K2").Value = c.Parent.Range("AC4")
.Range("L2").Value = c.Parent.Range("AG3")
End With
End If
End If
End Sub
Private Sub Enregistrement()
Sheets("Feuil1").Unprotect "SERTA" ' Dévérouillage de la feuille
If IsEmpty(Range("AA3")) Then ' Ajout de la date
Range("AA3").Value = Date
End If
Sheets("Feuil1").Protect "SERTA" ' Vérouillage de la feuille
If IsEmpty(Range("AC4")) Then ' Si le client n'est pas renseigné
MsgBox "Case ""Client"" non renseignée"
ElseIf IsEmpty(Range("Y4")) Then ' Si le numéro de commande n'est pas renseigné
MsgBox "Case ""Commande n°"" non renseignée"
ElseIf IsEmpty(Range("X3")) Then ' Si le nom du lanceur n'est pas renseigné
MsgBox "Case ""Lancé par"" non renseignée"
ElseIf IsEmpty(Range("AG3")) Then ' Si la date de livraison n'est pas renseignée
MsgBox "Case ""A livrer le"" non renseignée"
Else
' Sheets("Feuil1").PrintOut , , 1 ' Pour imprimer
Dim NomFichier As String ' Pour enregistrer fichier selon cellule et dans dossier spécifié
NomFichier = Range("Y4").Text & " - " & Range("AC4").Text
ActiveWorkbook.SaveAs "C:\Documents and Settings\user\Bureau\Travaux excel\test final\ENREGISTREMENT\" & NomFichier
End If
End Sub |