Reporter des informations d'un onglet à un autre suivant des conditions

Bonjour à tous,

Cela fait plusieurs jours que je cherche une solution à mon problème et j'avoue que je sèche un peu ...

Ce que je souhaite, c'est reporter automatiquement des informations entre l'onglet "ROLLING" et "DASHBOARD" ( voir fichier en copie ) suivant certains critères.

Je m'explique, par exemple sur l'onglet "ROLLING" j'ai actuellement 3 points qui ont été encodés.

image

Sur ces 3 lignes, il n'y a que certaines informations que je souhaite afficher dans l'onglet "DASHBOARD".

C'est à dire uniquement les colonnes B / C / I / J / L de l'onglet ROLLING uniquement si l'action est en cours

17excel.xlsm (127.61 Ko)

de traitement c'est à dire avec une colonne L différente du statut "clôturée".

Toujours avec mon exemple avec les points 3 encodés dans "ROLLING" l'onglet "DASHBOARD" devrait contenir ceci :

image

Et à chaque fois que je renseigne une ligne dans "ROLLING" automatiquement le report vers "DASHBOARD" est effectué. Le but est de faire un genre de listing des tâches en cours.

Autre point aussi important, La liste ne peut s'étendre à l'infini verticalement si j'ai plusieurs centaines d'informations, il faut qu'une fois la page pleine j'ai un curseur qui permette de dérouler les points sans naviguer dans la page.

Merci d'avance pour vos réponses : )

Bonjour,

Une piste avec des tableaux structurés :

Bonjour Geoffan, Eric, le forum,

Une variante.....

[EDIT] : avec 2 tableaux structurés comme mes camarades...

La macro s'exécute à l'activation de la feuille DASHBOARD...

Private Sub Worksheet_Activate()
 Dim tb, val(), k&, i&
 Dim lo As ListObject, lo2 As ListObject, r As Range

   Set lo = Sheets("ROLLING").Range("tb_rolling").ListObject
  Set lo2 = Sheets("DASHBOARD").Range("tb_dashboard").ListObject

   With lo2
    If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
    Set r = .InsertRowRange.Cells(1)
   End With

   If lo.DataBodyRange Is Nothing Then Exit Sub
     tb = lo.DataBodyRange
     k = 0
       ReDim val(0 To UBound(tb, 1), 1 To 5)
        For i = 1 To UBound(tb, 1)
         If tb(i, 11) = "En cours" Then
          val(k, 1) = tb(i, 1)
          val(k, 2) = tb(i, 2)
          val(k, 3) = tb(i, 9)
          val(k, 4) = tb(i, 8)
          val(k, 5) = tb(i, 11)
          k = k + 1
         End If
       Next i
      If k > 0 Then
       r.Resize(k, 5).Value = val
      End If
End Sub

Cordialement,

Bonjour

Une version avec des tableaux structurés. La mise jour se fait quand on change la valeur dans la colonne état de l'action dans la feuille rolling.

10excel-yal-v1.xlsm (77.65 Ko)

Bonjour tout le monde !

Si jamais, notons qu'on peut également faire tout ceci sans la moindre macro.

Salut 21Formatic,

Si jamais, notons qu'on peut également faire tout ceci sans la moindre macro

Mais c'est tellement moins rigolo....

Amitiés,

Merci beaucoup pour les solutions proposées et du temps accordé.

Cela correspond parfaitement à ce que j'attendais en ce qui concerne le report des informations de l'onglet "ROLLING" à "DASHBOARD".

Dernier point que j'avais formulé lors de l'édition de ce sujet, je souhaitais limiter la taille du tableau en hauteur.

Je m'explique, si par exemple plus de 20 points sont notés, je souhaiterais que la taille du tableau reste inchangée mais qu'on déroule la suite des points à l'aide d'un curseur type "barre de défilement".

De ce genre :

image

C'est une ListBox dans un Userform qu'il vous faut.

Salut 21Formatic,

Si jamais, notons qu'on peut également faire tout ceci sans la moindre macro

Mais c'est tellement moins rigolo....

Amitiés,

Hello !
Heureusement, il en faut pour tous les goûts. Je prends pour ma part un plaisir extrême à pousser les fonctionnalités basiques d'Excel avant d'aller taper dans le VBA pour le reste.
Ça évite de réinventer la roue à chaque fois :)

Quand vous parlez d’une list box dans une userform cela va t’il m’ouvrir une fenêtre genre « pop up » ? Car je souhaitais que le rapport génèré sur l’onglet « DASHBOARD » reste partie intégrante d’un onglet.

Edit :

Quand vous parlez d’une list box dans une userform cela va t’il m’ouvrir une fenêtre genre « pop up » ? 

Oui, mais je pense que cela n'a pas d'intérêt.

Et quel est l'intérêt de se limiter à 20 lignes ? Il suffit de filtrer les lignes concernant une machine. Il vous manque sans doute une table d'archivage, pour vérifier la fréquence des incidents de même type sur une machine.

Nb : Si vous avez regardé ma version, les lignes sont générées à partir du haut du tableau et non à partir du bas. Les incidents seront dans l'ordre du plus récent au plus ancien.

GEOFFAN

Rechercher des sujets similaires à "reporter informations onglet suivant conditions"