Extraire des lignes suivant somme des colonnes pour alimenter un autre tabl

Bonsoir à tous et toutes,

une petite question... Est il possible d'extraire certaines lignes d'un tableau A suivant la valeur de la somme de ses colonnes pour alimenter un tableau B ?

Je m'explique ! J'ai un tableau de demande sur lequel j'ai un identifiant( col D), un modèle( col E ), 10 colonnes de différentes pièces suivant le besoin ( colonnes F à O ) et une colonne P indiquant ou se trouve l'identifiant.

image

Si la somme des colonnes de F à O est supérieure à 4, j'estime que ce n'est pas rentable de fournir les pièces, d'ou la MFC en orange.

Ce que j'aimerais, c'est que soit en activant une macro ou via une formule, je puisse récupérer ces identifiants automatiquement dans un autre tableau " B " quand la condition est remplie...

image

Si je résume :

Tableau A : quand somme de Fà O > 4 , copier informations des cellules D, E et P correspondantes pour les coller dans le tableau B.

Je suis ouvert à toutes suggestions !!!!!!!

Merci d'avance les pro

Bonjour

Ci joint ma solution

A+ François

Ps: Il est très mal vu de poser la même question sur des sites diffétents.

tu as la chance que je ne l'ai pas vu avant..sinon je n'aurai pas répondu........

Bonjour superfrancois, fanfan38, le forum,

Une variante...à tester...

Sub test()
 Dim tb, ntb()
 Dim k%, i%, dl%

  Application.ScreenUpdating = False

  With Sheets("Dashboard").ListObjects("tblcanni")
   If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
  End With

  If Sheets("Demande").ListObjects("tbldemande").DataBodyRange Is Nothing Then MsgBox "Le tableau est vide !", vbExclamation: Exit Sub
   tb = Sheets("Demande").ListObjects("tbldemande").DataBodyRange
    k = 0
    ReDim ntb(1 To UBound(tb, 1), 1 To 3)
     For i = 1 To UBound(tb, 1)
      If Application.Sum(tb(i, 3), tb(i, 4), tb(i, 5), tb(i, 6), tb(i, 7), tb(i, 8), tb(i, 9), tb(i, 10), tb(i, 11)) > 4 Then
       ntb(k + 1, 1) = tb(i, 1)
       ntb(k + 1, 2) = tb(i, 2)
       ntb(k + 1, 3) = tb(i, 13)
       k = k + 1
      End If
     Next i
    With Sheets("Dashboard").ListObjects("tblcanni")
      If k > 0 Then
      .ListRows.Add: dl = 1
      .DataBodyRange.Item(dl, 1).Resize(k, 3) = ntb
      End If
    End With
   Erase tb: Erase ntb
End Sub

Cordialement,

Bonsoir Fanfan38 et Xorsankukai,

Un grand merci à vous 2 pour vos 2 solutions

Fanfan38, désolé, je sais que ce n'est pas correct et je vais tenir compte de ton conseil.

Je vous souhaite une très bonne soirée.

Cordialement

Rechercher des sujets similaires à "extraire lignes suivant somme colonnes alimenter tabl"