Bonjour,
j'ai réussi à comprendre à peu près cette macro et à la modifier comme je voulais mais il y a bien sur un hic si je crée un post ici ( lol ). Cette macro a pour but de copier les données de l'onglet Zone de saisie dans les autres feuilles de fournisseurs. Bien sur, plantes dont le fournisseur est fanfelle doit être copié dans l'onglet fanfelle, etc etc.
Mon soucis et c'est la que je bloque, c'est que si j'ai 2 ou plus plantes du fournisseurs de fanfelle, j'ai qu'un fanfelle qui est copié et dans les autres fournisseurs, c'est la même histoire.
Pouvez vous m'aidé à comprendre ou cloche leproblème dans le code suivant et si possible le corriger tout en m'explicant le codage si possible et j'aimerais que la mise en forme soit recopié à l'identique.
Merci à vous
j'ai réussi à comprendre à peu près cette macro et à la modifier comme je voulais mais il y a bien sur un hic si je crée un post ici ( lol ). Cette macro a pour but de copier les données de l'onglet Zone de saisie dans les autres feuilles de fournisseurs. Bien sur, plantes dont le fournisseur est fanfelle doit être copié dans l'onglet fanfelle, etc etc.
Mon soucis et c'est la que je bloque, c'est que si j'ai 2 ou plus plantes du fournisseurs de fanfelle, j'ai qu'un fanfelle qui est copié et dans les autres fournisseurs, c'est la même histoire.
Pouvez vous m'aidé à comprendre ou cloche leproblème dans le code suivant et si possible le corriger tout en m'explicant le codage si possible et j'aimerais que la mise en forme soit recopié à l'identique.
VB:
Sub SaveZoneSaisieParFournisseur()
Dim Ws As Worksheet, WsFournisseur As Worksheet
Dim PlageZone As Range, CellZone As Range
Dim Ligne As Integer
Set Ws = ThisWorkbook.Worksheets("Zone de Saisie")
Set PlageZone = Ws.Range("A3:A" & Ws.Range("A5000").End(xlUp).Row)
For Each CellZone In PlageZone
For Each WsFournisseur In ThisWorkbook.Worksheets
If CellZone.Offset(0, 2) = WsFournisseur.Name Then
Ligne = WsFournisseur.Range("B5000").End(xlUp).Row + 1
With WsFournisseur
.Cells(Ligne, 1) = CellZone.Offset(0, 1)
.Cells(Ligne, 3) = CellZone.Offset(0, 4)
.Cells(Ligne, 4) = CellZone.Offset(0, 3)
.Cells(Ligne, 2) = CellZone.Offset(0, 0)
End With
End If
Next WsFournisseur
Next CellZone
End Sub
Merci à vous