Bonjour,
Étant novice en VBA je viens chercher un peu d'aide.
Alors j'aimerais avoir un tableau de suivi de nos achats.
Sur une feuille j'ai alors toutes nos commandes et les factures, et sur les autres feuilles chacun des fabricants.
Au boulot, j'ai réussi à faire une macro qui marche et je ne sais pour quelle raison quand j'ai fait refait un tableau batard (ci-joint) pour ne pas divulguer les infos de l'entreprise ça ne veut pas marcher, vous pourrez peut-être me dire pourquoi.
Mais il me restait deux problèmes:
1) La macro fonctionnait parfaitement pour le fabricant 1 mais pas pour les autres fabricants
2)A chaque fois que je clique sur le bouton pour faire la mise à jour les données se rajoutent à la suite, mais tous se rajoutent de nouveau. Je me retrouve avec pleins de lignes identiques. Je complète le fichier tous les jours. Je voudrais que les lignes de fabricants ne se dupliquent pas. De plus une ligne n'est pas toujours complète même si une autre ligne en dessous l'est, elle sera complétée plus tard.
Voici mon code
Sub selection()
Application.ScreenUpdating = False
Sheets("cmde").Select
Dim Num_Facture As String
Dim Product_name As String
Dim qte_cmde As String
Dim qte_livre As String
Dim lastrow As Long
lastrow = Sheets("cmde").Cells(Rows.Count, 1).End(xlUp).Row
For i = 7 To lastrow
If Cells(i, 7) = “fabricant1” Then
Num_Facture = Sheets("cmde").Cells(i, 5)
Product_name = Sheets("cmde").Cells(i, 2)
qte_cmde = Sheets("cmde").Cells(i, 3)
qte_livre = Sheets("cmde").Cells(i, 6)
Sheets("fabricant1").Activate
erow = Sheets("fabricant1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("fabricant1").Cells(erow, 1) = Num_Facture
Sheets("fabricant1").Cells(erow, 2) = Product_name
Sheets("fabricant1").Cells(erow, 3) = qte_cmde
Sheets("fabricant1").Cells(erow, 4) = qte_livre
ElseIf Cells(i, 7) = “fabricant2” Then
Num_Facture = Sheets("cmde").Cells(i, 5)
Product_name = Sheets("cmde").Cells(i, 2)
qte_cmde = Sheets("cmde").Cells(i, 3)
qte_livre = Sheets("cmde").Cells(i, 6)
Sheets("fabricant2").Activate
erow = Sheets("fabricant2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("fabricant2").Cells(erow, 1) = Num_Facture
Sheets("fabricant2").Cells(erow, 2) = Product_name
Sheets("fabricant2").Cells(erow, 3) = qte_cmde
Sheets("fabricant2").Cells(erow, 4) = qte_livre
End If
Next i
Application.ScreenUpdating = True
End Sub
Je suis désolée si j'ai pas été claire et remercie tous ceux qui essayeront de m'aider.