VBA - Copier region tableau si = valeur formulaire

Bonjour le forum,

Je suis venu récolter un peu d'aide sur un blocage en cours.

Version 1 : Copie produit + prévisions semaines

J'ai un fichier de prévisions de ventes régulièrement màj depuis lequel je dois extraire :

  • mes produits
  • les prévisions correspondantes

Avec un formulaire et une macro, j'arrive à faire les actions suivantes :

image

1- Formulaire avec liste déroulante de choix de semaine

2- Bouton extraire depuis lequel :

3- Je trouve mon numéro de semaine

4- Je copie mes produits et les prévisions correspondantes en fluo dans un nouvel onglet "Forecast"

Code :

Private Sub Extract_Click()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Dim wbsos As Workbook
    Dim Sos As Worksheet
    Dim WeekNo As Range, WeekRange As Range
    Dim Nbcol As Long, dl As Long
    Dim ColActive As Long

    'affectation des variables
    Set wbsos = ThisWorkbook
    Set Sos = wbsos.Sheets("Sales")

    'selection et copie de la liste des produits
    With Sos
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        .Range("A11:A" & dl).Copy
        Sheets.Add
        ActiveSheet.Name = "Forecast"
        Set forc = ActiveSheet
        forc.Range("A2").PasteSpecial

        'Affectation des variables et du nombre de colonne
        Set WeekRange = .Range("HC10", .Range("HC10").End(xlToRight))

        'Boucle sur les colonnes de semaine
        For Each WeekNo In WeekRange

            'si la valeur de la colonne est équivalente à la selection du formulaire alors copie dans le nouvel onglet
            If Me.cb_WeekNo = WeekNo.Value Then
                .Cells(1, WeekNo.Column).Resize(dl, 1).Copy forc.Range("B2")
                Exit For
            End If

        Next
    End With
End Sub

Version 2 : Copie produit + prévisions restantes

Dans une nouvelle version, j'aimerais pouvoir sélectionner les données restantes du tableau, cependant cela me pose quelques problèmes :

  1. Je n'arrive pas à sélectionner la plage restante depuis le résultat de mon test (ex : Wk19-2021 = range de semaine)
  2. Mes colonnes doivent être copiées, puis combinées dans le nouvel onglet "forecast" pour pouvoir les traiter

Soit,

Plage Produit

PrévisionNuméro de semaine
170302820Wk -19 - 2021

Une illustration,

image

En espérant que cela soit clair, je pense que cela n'est pas trop dur pour quelqu'un qui a la main.

Voici le fichier :

Rechercher des sujets similaires à "vba copier region tableau valeur formulaire"