XL 2016 importer une progression en fonction du mois selectionné - VBA

UnePassante86

XLDnaute Nouveau
Hello!

J'espère que vous vous portez bien,

Je poste pour la 1ère fois ici car j'ai un blocage sur une action que j'aimerai bien mettre en place.

En fait, je souhaiterai pouvoir importer avec VBA une progression en % (colonne F, onglet "objectifs Result") vers un autre tableau dans onglet "recap", la difficulté vient du fait que la progression doit etre récupérée en fonction du mois choisis dans les tableau correspondant... Est ce que cela est possible?

Je sollicite l'aide d'une âme bienveillante qui pourrait m'aider à faire cela,

Salutations,

Juste de passage
 

Pièces jointes

  • Import Progression par mois.xlsx
    21.4 KB · Affichages: 18

job75

XLDnaute Barbatruc
Bonjour UnePassante86, bienvenue sur XLD,

Pour un 1er post bravo, c'est un joli problème.

Voyez le fichier .xlsm joint et ces 2 macros dans le code de la feuille "Recap" :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim mois, tablo As Range, F As Worksheet, i As Variant, P As Range, h&, nom$(), maxi#
mois = [B2]
Set tablo = ListObjects(1).Range 'tableau structuré
Set F = Sheets("Objectifs Result") 'à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
tablo.Offset(1).ClearContents 'RAZ
tablo.ListObject.Resize tablo.Rows("1:2") 'redimensionne
i = Application.Match(CLng(mois), F.[B:B], 0)
If IsNumeric(i) Then
    Set P = F.Cells(i, 2).CurrentRegion.Resize(, 14)
    h = P.Rows.Count - 2
    If h > 0 Then
        tablo(2, 1).Resize(h) = P(3, 2).Resize(h).Value
        tablo(2, 2).Resize(h) = P(3, 1).Resize(h).Value
        tablo(2, 4).Resize(h) = P(3, 5).Resize(h).Value
        ReDim nom(1 To h, 1 To 1)
        For i = 1 To h
            maxi = 0
            If IsNumeric(P(i + 2, 8)) Then maxi = P(i + 2, 8): nom(i, 1) = Split(P(2, 8), vbLf)(0)
            If IsNumeric(P(i + 2, 11)) Then If P(i + 2, 11) > maxi Then maxi = P(i + 2, 11): nom(i, 1) = Split(P(2, 11), vbLf)(0)
            If IsNumeric(P(i + 2, 14)) Then If P(i + 2, 14) > maxi Then nom(i, 1) = Split(P(2, 14), vbLf)(0)
        Next i
        tablo(2, 3).Resize(h) = nom
    End If
End If
Application.EnableEvents = True 'réactive les évènements
End Sub
Le tableau (structuré) est mis à jour quand on modifie ou valide une cellule quelconque ou quand on active la feuille.

A+
 

Pièces jointes

  • Import Progression par mois(1).xlsm
    32.5 KB · Affichages: 13

UnePassante86

XLDnaute Nouveau
Bonjour Job75 & JHA :)

Je suis impressionnée par votre rapidité! et Je vous suis vraiment reconnaissante pour cela!

Vous avez répondu à ma demande, deux méthodes pour les mêmes résultats! J'imaginais pas que c'était possible avec des formules! je suis d'ailleurs surprise que le fichier avec formules pèsent un peu moins lourd que je le fichier avec VBA, mais je dois quand même avouer que je suis plutôt fan de VBA car cela évite parfois les suppressions de formules malencontreuses. :)

Pensez-vous qu'il est possible de faire exactement la même chose sans redimensionner le tableau? En fait, l'idée est que la progression s'incrémente en fonction du mois sélectionné mais sans changer les informations des données en colonnes "B, C, D" du tableau récap... je voyais une fonction recherche.

Merci encore pour tout!

Bon dimanche
 

UnePassante86

XLDnaute Nouveau
Dans le cas du projet, ce n'est malheureusement pas possible! En fait, c'est un tableau annuel, et il ne peut pas être redimensionné, il doit juste aller chercher les infos dans d'autres tableaux.. donc non je ne peux pas appliquer votre solution, un point c'est tout :)

Bon courage!
 

UnePassante86

XLDnaute Nouveau
Bonjour,

Je voudrais pouvoir importer les progressions en fonction d'un mois sélectionné depuis onglet "Objectifs Result vers onglet "recap" dans la colonnes Progression, sans changer le format du tableau lors de l'import. ( Il doit rester tel quel)

Merci
 

Pièces jointes

  • Import Progression par mois.xlsx
    21.3 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise