Créer une vu de synthèse en VBA

tony1711

XLDnaute Nouveau
Bonjour,

Je voudrais a partir d'un tableau de bord sur Excel créer un tableau de synthèse des tâche encore à faire.
Ce tableau de synthèse ne devrait contenir que le contenu des colonnes A-B-C-F-L-M-T pour les lignes qui contiennent la valeurs "EUI" en colonne L.

Le fichier excel servant egalement pour historique je voudrais que ma boucle commence par la fin et qu'elle s'arrete lorsqu'elle rencontre un "OK" en ligne x et colonne T
Quelqu'un pourrait- il me donner des indications pour ma boucle je suis un peu perdu
Merci d'avance
Cordialement
 

Pièces jointes

  • CAB Dashboard.zip
    196.1 KB · Affichages: 60

tony1711

XLDnaute Nouveau
Re : Créer une vu de synthèse en VBA

Bonjour Benoit,

Tout d'abord merci pour ta réponse.
C'est exactement ce qu'il me faudrait, juste pour la colonne "Delai notif", serait il possible que l'on récupère la valeur de la cellule de la colonne T (Notif) du tableau de bord ?

Merci d'avance
 

thebenoit59

XLDnaute Accro
Re : Créer une vu de synthèse en VBA

Re-bonjour.

On modifie le code ça sera plus simple.
Remplace le code par le suivant :

Code:
Option Explicit
Option Base 1

Sub Synthese()
Dim Wk As Workbook
Dim ShPlan As Worksheet, ShSyn As Worksheet
Dim lPlan As Long, lSyn As Long
Dim i As Long, j As Integer, k As Integer
Dim cSyn(), a, c
Dim d As Object

    Set Wk = ThisWorkbook
    Set ShPlan = Wk.Sheets("Planning"): Set ShSyn = Wk.Sheets("Synthese")
    lPlan = ShPlan.[a65000].End(xlUp).Row: lSyn = ShSyn.[c65000].End(xlUp).Row
    cSyn = Array(20, 12, 6, 19, 1, 2, 3, 13, 17)
    Set d = CreateObject("Scripting.Dictionary")
    
    With ShPlan
    j = 0
    For i = lPlan To 2 Step -1
    If .Cells(i, 20).Value = "OK" Then Exit For
    If .Cells(i, 12).Value = "EUI" Then
        j = j + 1
        For k = 1 To 9: d(j) = d(j) & .Cells(i, cSyn(k)).Text & "|": Next k
    End If
    Next i
    End With
     
    With ShSyn
    If lSyn > 2 Then .Rows("3:" & lSyn).EntireRow.Delete
    For Each c In d.keys
    a = Split(d(c), "|")
    .Cells(2 + c, 3).Resize(, UBound(a) - 1).Value = a
    Next
    End With
End Sub

J'avais mis comme critère pour quitter la boucle un "x" et pas un "OK".
Ensuite je récupère le texte et pas la valeur ça sera moins encombrant.
 

Discussions similaires

Statistiques des forums

Discussions
312 371
Messages
2 087 704
Membres
103 646
dernier inscrit
ouattara dad