SARAH030412
XLDnaute Nouveau
Bonjour, Je suis en train de créer un fichier avec des macros afin de faire un tableau de bord des locations avec une déduction automatique des stocks dans la feuille stock. (ma version d'excel 2019)
Concrètement, je voudrais (avec un codage VBA) que mon dans mon fichier "LOCATION DEFINITIF" , les quantités louées dans la feuille "suivi location 2021" (colonne F) se déduisent de la feuille "stock" de la colonne F nommé quantité initiale.
Pour cela j'ai fais un codage cependant ce codage ne s'est pas enregistré dans la fenêtre VBA de mon fichier excel "LOCATION DEFINITIF" d'où le fait que j'ai mis un deuxième fichier.
Voici mon codage:
Sub verification_stock()
Dim ligne As Integer: ligne = 7
Dim valeur_stock As Integer: valeur_stock = 0
Dim valeur_demandee As Integer: valeur_demandee = 0
Dim ref_article As String: Dim ref_suivi_location_2021 As String
Dim choix_utilisateur As Byte
While (Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
valeur_stock = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value
ref_article = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 2).Value
For Each cellule In ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Range("C6:C134")
If (cellule.Value = ref_article) Then
valeur_demandee = ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Cells(cellule.Row, 6)
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, mettre à jour les stocks ?", vbYesNo)
If (choix_utilisateur = 6) Then
For Each cellule In ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Range("C6:C134")
ligne = 7
While (Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
If (cellule.Value = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 2).Value) Then
Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value - ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Cells(cellule.Row, 6).Value
End If
ligne = ligne + 1
Wend
Next cellule
Else
Exit Sub
End If
End If
End Sub
Je rejoins encore le fichier excel en PJ
Merci pour votre aide car elle m'est vraiment précieuse
Sarah
Concrètement, je voudrais (avec un codage VBA) que mon dans mon fichier "LOCATION DEFINITIF" , les quantités louées dans la feuille "suivi location 2021" (colonne F) se déduisent de la feuille "stock" de la colonne F nommé quantité initiale.
Pour cela j'ai fais un codage cependant ce codage ne s'est pas enregistré dans la fenêtre VBA de mon fichier excel "LOCATION DEFINITIF" d'où le fait que j'ai mis un deuxième fichier.
Voici mon codage:
Sub verification_stock()
Dim ligne As Integer: ligne = 7
Dim valeur_stock As Integer: valeur_stock = 0
Dim valeur_demandee As Integer: valeur_demandee = 0
Dim ref_article As String: Dim ref_suivi_location_2021 As String
Dim choix_utilisateur As Byte
While (Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
valeur_stock = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value
ref_article = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 2).Value
For Each cellule In ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Range("C6:C134")
If (cellule.Value = ref_article) Then
valeur_demandee = ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Cells(cellule.Row, 6)
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, mettre à jour les stocks ?", vbYesNo)
If (choix_utilisateur = 6) Then
For Each cellule In ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Range("C6:C134")
ligne = 7
While (Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value <> "")
If (cellule.Value = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 2).Value) Then
Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value = Workbooks("LOCATION DEFINITIF.xlsx").Worksheets("Feuil1").Cells(ligne, 6).Value - ThisWorkbook.Worksheets("SUIVI_LOCATION_2021").Cells(cellule.Row, 6).Value
End If
ligne = ligne + 1
Wend
Next cellule
Else
Exit Sub
End If
End If
End Sub
Je rejoins encore le fichier excel en PJ
Merci pour votre aide car elle m'est vraiment précieuse
Sarah