Listing filtré dans une nouvelle feuille
Bonjour,
Je dispose d'un document Excel avec diverses feuilles qui se rapportent à des listings de produits de catégories différentes par onglet.
Ce document permet de commander des produits en fonction d'un nombre encodé à la main dans une colonne commande fournisseur (colonne "8")
Je tente avec une macro qui est à exécuter (avec un bouton d'activation) de notifier dans un onglet "COM TRE BOISSONS", tous les produits dont le nombre à commander est <> de "" (rien) afin d'envoyer au fournisseur seulement le listing des produits nécessaires avec leur code (colonne 4), désignation (colonne 7) et quantité désirée (colonne "8").
J'ai pour ce faire cette macro mais elle bug dès le premier "if" :
Pourriez-vous m'aider svp ...
Dans l'attente,
Bonne journée et merci,
Loadlucas
Sub COMTRENDBOISSONS()
Dim d As Object, k, n%, i%, j%, wbf$, clr&, Tpm()
Application.EnableEvents = False
With ThisWorkbook.Worksheets("BOISSONS")
n = .Cells(.Rows.Count, 4).End(xlUp).Row
clr = RGB(0, 0, 0)
For i = 3 To n
k = .Cells(i, 4)
If d.exists(k) <> "" Then
If CDbl(d(k)) <> "" Then
.Cells(i, 8).Interior.Color = clr
j = j + 1: ReDim Preserve Tpm(2, j)
Tpm(0, j) = k: Tpm(1, j) = .Cells(i, 7): Tpm(2, j) = .Cells(i, 8)
End If
End If
Next i
End With
If j = 0 Then Exit Sub
Tpm(0, 0) = "CODE": Tpm(1, 0) = "Désignation": Tpm(2, 0) = "Commande"
With Worksheets("COM TRE BOISSONS")
.UsedRange.Clear
With .Range("A1:C" & j + 1)
.Value = WorksheetFunction.Transpose(Tpm)
.Columns(1).HorizontalAlignment = xlCenter
.Columns(2).AutoFit
.Rows(1).HorizontalAlignment = xlCenter
.Borders.Weight = xlThin
End With
End With
Application.EnableEvents = True
End Sub