Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub CREATION_REFS()
Dim Sh As Worksheet
Dim Cel As Range, plg As Range
Dim VarC12 As Variant
Select Case MsgBox(" Voulez-vous lancer la création des REFS ? " _
& vbCrLf & " (Un onglet par Numéro de Série) " _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Confirmer votre choix...")
Case vbYes
UserFormAttente.Show 0
UserFormAttente.Repaint
Sheets("BASE").Activate
Range("B2").Select
Set plg = Range(Selection, Selection.End(xlDown))
For Each Cel In plg.Cells
If Cel <> "" Then
For Each Sh In Worksheets
If Sh.Name = Cel Then GoTo suite
Next
UserFormAttente.Label2.Caption = vbCrLf & "Création de la REF pour le SN : " & vbCrLf & Cel.Value & vbCrLf
UserFormAttente.Label2.ForeColor = &H400000
UserFormAttente.Repaint
'Tempo de x millisecondes
Sleep 5
Application.ScreenUpdating = False
Dim rRefs As Range, rRef As Range
Dim sRef$, sMod$
Const MyPath = "C:\Modeles\"
Sheets("REFERENCES").Activate
Set rRefs = Sheets("REFERENCES").Range("B2", Cells(Cells(65536, "B").End(xlUp).Row, "B"))
Sheets("BASE").Activate
sRef = Range("E2").Value
For Each rRef In rRefs
If rRef.Value = sRef Then
sMod = rRef.Offset(0, 1).Value
Exit For
End If
Next rRef
Workbooks.Open (MyPath & sMod & ".xls")
Sheets.Add Type:=MyPath & sMod & ".xls", _
After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Cel.Value
'Recopie les différentes rubriques spécifiées
With Sheets("BASE")
VarD13 = .Range("E2").Value
VarA13 = .Range("A2").Value
VarF34 = .Range("J2").Value
VarG13 = .Range("D2").Value
VarI13 = .Range("B2").Value
VarK4 = .Range("C2").Value
VarK8 = .Range("G2").Value
VarK13 = .Range("H2").Value
End With
With Sheets(Sheets.Count)
'PN
If Sheets("BASE").Range("E" & Cel.Row).Value <> "" Then VarD13 = Sheets("BASE").Range("E" & Cel.Row).Value
.Range("D13").Value = VarD13
'N°
If Sheets("BASE").Range("A" & Cel.Row).Value <> "" Then VarA13 = Sheets("BASE").Range("A" & Cel.Row).Value
.Range("A13").Value = VarA13
'Responsable
If Sheets("BASE").Range("J" & Cel.Row).Value <> "" Then VarF34 = Sheets("BASE").Range("J" & Cel.Row).Value
.Range("F34").Value = VarF34
'Quantité
If Sheets("BASE").Range("D" & Cel.Row).Value <> "" Then VarG13 = Sheets("BASE").Range("D" & Cel.Row).Value
.Range("G13").Value = VarG13
'Référence
If Sheets("BASE").Range("B" & Cel.Row).Value <> "" Then VarI13 = Sheets("BASE").Range("B" & Cel.Row).Value
.Range("I13").Value = VarI13
'N° de suivi
If Sheets("BASE").Range("C" & Cel.Row).Value <> "" Then VarK4 = Sheets("BASE").Range("C" & Cel.Row).Value
.Range("K4").Value = VarK4
'Ordre
If Sheets("BASE").Range("G" & Cel.Row).Value <> "" Then VarK8 = Sheets("BASE").Range("G" & Cel.Row).Value
.Range("K8").Value = VarK8
'Status
If Sheets("BASE").Range("H" & Cel.Row).Value <> "" Then VarK13 = Sheets("BASE").Range("H" & Cel.Row).Value
.Range("K13").Value = VarK13
End With
End If
suite:
Next Cel
Unload UserFormAttente
Uf_Ok.Show 0
Uf_Ok.Repaint
Case vbNo
Exit Sub
End Select
Sheets("BASE").Activate
Range("A1").Select
End Sub