concernant la liaison avec le fichier catalogue voici le code que j'avais utilisé
Sub MiseAJour()
Dim Liaisons, Classeurs
'Mettre ici les chemins des fichiers de destination 2
Classeurs = Array("C:\Users\ASUS\Documents\catalogue.xlsx", "C:\Users\ASUS\Desktop\GESTDEPOT VBA.xlsm")
Application.ScreenUpdating = False
For Each Item In Classeurs
Workbooks.Open Item, UpdateLinks = True
Liaisons = ActiveWorkbook.LinkSources
For i = 1 To UBound(Liaisons)
Workbooks.Open Liaisons(i), UpdateLinks = True
ActiveWorkbook.Close True
Next
ActiveWorkbook.Close True
Next Item
Application.ScreenUpdating = True
End Sub
Pour la vérification de mon stock aussi le code que j'avais utilisé marche aussi parfaitement, le voici
Sub verification_stock()
Dim cellule As Range: Dim test As Boolean
test = False
For Each cellule In Range("F9:F29")
If (cellule.Value = "-") Then
test = True
Exit For
End If
Next cellule
If (test = True) Then
MsgBox ("Des articles hors stock figurent dans la facture, il n'est pas possible de continuer")
Exit Sub
End If
Dim ligne As Integer: ligne = 2
Dim valeur_stock As Integer: valeur_stock = 0
Dim valeur_demandee As Integer: valeur_demandee = 0
Dim ref_cat As String: Dim ref_facture As String
Dim choix_utilisateur As Byte
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
valeur_stock = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value
ref_cat = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C9:C29")
If (cellule.Value = ref_cat) Then
valeur_demandee = ThisWorkbook.Worksheets("facturation").Cells(cellule.Row, 8)
If (valeur_demandee > valeur_stock) Then
MsgBox ("La référence " & cellule.Value & " ne possède pas assez de stock")
test = True
End If
End If
Next cellule
ligne = ligne + 1
Wend
If (test = True) Then
Exit Sub
Else
choix_utilisateur = MsgBox("La facture semble correcte, souhaitez-vous l'imprimer et mettre à jour les stocks ?", vbYesNo)
If (choix_utilisateur = 6) Then
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C9:C29")
ligne = 2
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
If (cellule.Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value) Then
Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value - ThisWorkbook.Worksheets("facturation").Cells(cellule.Row, 5).Value
End If
ligne = ligne + 1
Wend
Next cellule
Else
Exit Sub
End If
End If
'je déclare mes variables'
Dim NomDossier As String
Dim Chemin As String
'je nomme le dossier et donne le chemin de sauvegarde'
NomDossier = Application.InputBox("ArchivageFactures:", "Année ?")
Chemin = "E:\inventaires\DEPÔT SNB\" & NomDossier & "\"
If NomDossier = "" Then Exit Sub
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & "FactureNumero_" & Range("F5").Value _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub