Démultiplication de ligne suivant différentes valeurs

Bonjour,

J'aimerai savoir s'il était possible de démultiplier des lignes suivant plusieurs valeurs qui sont dans ce tableau

capture1

Exemple, j'ai une ligne avec en colonne "E" une quantité de 150 ayant pour valeur en "A" "Bouteille" puis en "C" "80x120"

Ma quantité "Max" prévu pour ces valeurs ( Bouteille et 80x120 ) est de "33" (cf Tableau ci-dessus)

J'aimerai donc avoir comme résultat 150/33= 4 lignes ayant une quantité de "33" puis une 5eme ligne avec le restant de la quantité ( 18 )

Je joins un fichier que j'ai renseigné pour mieux comprendre le problème et le résultat voulu.

Je remercie d'avance celui oui celle qui pourra m'aider :)

Avant :

capture2

Après :

capture3
5classeur1.xlsx (67.29 Ko)

J'ai trouvé ce code que j'aimerai adapté à mon fichier si ça peut aider.

Sauf que au lieu d'avoir comme seul critère la constante "33", j'ai besoin d'avoir les variables du petit tableau

Sub Transform()
Const M As Integer = 33
Dim LastLig As Long, i As Long
Dim Q As Integer, N As Integer

Application.ScreenUpdating = False

Worksheets("Final").Range("A1:H5000").ClearContents

With Worksheets("Final")
    .UsedRange.Clear
    Worksheets("Restant Prod").UsedRange.Copy .Range("A1")
    LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
    For i = LastLig To 2 Step -1
        Q = .Range("E" & i).Value
        If Q > M Then
            N = (Q - 1) \ M
            .Range("E" & i).Value = M
            .Rows(i).Copy
            .Rows(i).Resize(N).Insert
            Application.CutCopyMode = False
            .Range("E" & i) = Q - M * N
        End If
    Next i
End With
End Sub

Bonsoir à tous,

Une proposition via Power Query (Complément à installer pour Excel 2013 - Nativement intégré dans les versions postérieures) :

Bonjour et un grand merci pour votre aide :)

C'est exactement ce qu'il me faut, j'étais parti sur du VBA car je ne savais pas que l'on pouvait faire cela en power qwery !

Savez vous si on peut actualiser automatiquement le T_final dès que les données de T_data change afin de ne pas devoir le faire manuellement ?

Bonjour

Une solution en VBA

Bonjour Yal_excel,

Un grand merci pour votre aide :)

J'aurai du le préciser avant mais le tableau "source" va vivre et donc s'allonger ou se réduire.

Si des lignes du tableau sont vides alors je rencontre une erreur. Apparemment si j'ajoute des données cela fonctione car le tableau se redimensionne de lui même

Y a t'il une solution pour redimensionner automatiquement la taille du tableau suivant les données qu'il y a dedans ?

Encore merci pour votre aide :)

Edit : J'ai trouvé ce bout de code qui fonctionne pour allonger le tableau suivant les données mais pas pour le rétrécir si moins de données :

Sub Redim_tableau()
Dim Bottom As Long
With Worksheets("Structure Restant Prod").ListObjects("tbTM1")
Bottom = .Parent.Range(Split(.Range.Address, "$")(1) & Rows.Count).End(xlUp).Row 'dernière ligne
.Resize .Range.Range(Cells(1), Cells(Bottom - .Range.Cells(1).Row + 1, .ListColumns.Count)) 'on redimensione
End With

End Sub

Bonjour à tous,

Il existe des codes VBA légers qui permettent une actualisation automatique.

Cependant je ne suis pas convaincu de cette fonctionnalité. Un simple clic sur un bouton, accessoirement intégré à votre barre d'accès rapide, fera l'affaire.

Si toutefois cela vous semble indispensable, tournez-vous vers un code qui actualisera le tableau lors de l'activation de la feuille idoine. (Exemple Jean-Eric)

Merci pour ce lien :)

J'en profite un peu comme vous gérer bien power query !

Y a t'il possibilité de récupérer sur excel, le nombre d'erreur lors d'une actualisation et si l'actualisation s'est correctement passée ou non ?

J'aimerai l'inscrire en dur sur une feuille excel.

image

Exemple, j'aimerai avoir sur une feuille excel, l'actualisation ne s'est pas faite correctement et il y a 9 erreurs.

BDDNOK 9 erreurs

Est ce possible ?

Voilà qui gère les lignes vides. Ce qui soit dit en passant n'est pas sensé arriver dans un tableau structuré.

Vous êtes vraiment génial !

Un grand grand merci pour votre aide

Je vais pouvoir avancer dans mon projet grâce à vous alors que je suis bloqué depuis hier...

En merci et je vous souhaite une agréable journée

Rechercher des sujets similaires à "demultiplication ligne suivant differentes valeurs"