Adapter le nombre de ligne automatiquement

Bonjour,

Je souhaiterais une formule ou du VBA qui me permettrait dans la feuille mes adj 1 d'adapter automatiquement le nombre de ligne dans la partie droite adjusted en fonction de la partie gauche qui peut varier tout en gardant le total. Auriez vous une idée ?

Merci d'avance

je ne suis pas clair dans ma demande ?

Bonsoir

Votre formule doit aller dans quelle colonne et quelle est-elle ?

Comment les données entre A et K sont-elles ajoutées ?

Bonjour,

J'ai déjà commencé le code, je souhaite dupliqué le tableau de gauche vers la droite et ajouter des colonnes. Je bloque sur comment afficher le total dans les cases où se trouve les "?" sachant que les totaux doivent s'adapter aux filtres possibles. Auriez vous une idée ?

Bonjour,

Avez vous essayé ceci pour vos totaux :
- Supprimez les lignes 69 à 78, y compris la ligne total
- Cliquez dans une cellule du tableau structuré
- Allez dans le menu excel "Création du tableau"
- Dans "option style de tableau", cochez la case "Ligne de Total" (cela va vous mettre un total dans la colonnne WIP Production
- Recopier le total vers la gauche jusque la colonne LaunchedQTY

Si ok on voit pour la suite mais expliquez moi comment vous fonctionnez pour les lignes à ajouter

Cordialement

Edit : Je vois votre code mais déjà pour la première instruction --> While Not IsEmpty(Cells(i, 1)), vous êtes dans quelle feuille ?

J'y ai pensé mais le tableau structuré interfère avec la macro. Est-ce une bonne idée de rajouter automatiquement la mise en forme en tableau structuré après avoir exécuter la macro ?

Je suis dans la feuille Mes adj 1

Ok merci de la précision.

Pouvez vous me donner ces infos :

- juste pour savoir, pourquoi dupliquez vous les deux tableaux ? est-ce que tableau de guache ne serait pas suffisant ?
- Le nombre de lignes du tableau de gauche est toujours bien identique au tableau de droite
- Comment le tableau de gauche est-il complété ?

Désolé de mes questions mais avant de vous donner un code, il faut que je comprenne bien comment vous fonctionnez avec le fichier

-C'est un besoin purement visuel, ça ne tiendrait qu'à moi je ne garderais que la partie gauche.

-Oui il faut le même nombre de ligne dans les deux tableaux mis à part la ligne total que je souhaiterais avoir sur le tableau de droite

-Le tableau de gauche est actualisé en recopiant un tableau de même dimension chaque semaine.

Pas de problèmes. Merci pour vos réponses.

-C'est un besoin purement visuel, ça ne tiendrait qu'à moi je ne garderais que la partie gauche.

ben c'est facile d'avoir uniquement la partie gauche. Quand vous dites "visuel" c'est à dire ?
Voyez la vue ci-dessous juste en mettant en tableau structuré.
Ce ne serait pas bon comme cela ?

presse papier02

je voulais dire que ce n'est pas moi qui est décidé de garder la partie gauche. Je ne saurais vous dire pourquoi la partie gauche doit être gardé.

Malheureusement non j'ai besoin des deux parties.

je voulais dire que ce n'est pas moi qui est décidé de garder la partie gauche.

Lol ! l'art de compliqué quand on peut faire simple....

-Le tableau de gauche est actualisé en recopiant un tableau de même dimension chaque semaine.

c'est un simple copier coller donc

Je vais voir coté code en partant su principe qu'il suffit de faire un copier coller de votre tableau de gauche dans celui de droite et d'ajouter

- les totaux
- le client en colonne X et Cat en colonne W

Merci. Si vous le pouvez n'hésitez pas à me dire les parties de mon code que vous trouvez illogique.

Voici le code mais avant :
- je suppose que votre tableau est bien préparé entre colonne R et colonne AF et préparé comme je vous ai expliqué dans mon post de ce matin --> https://forum.excel-pratique.com/s/goto/1022404
- Les titres entre R3 et V3, Y3 et AD3 sont identiques à ceux entre les colonnes A et K

Mettez ce code à la place du votre

Sub test()
Dim dlg As Integer, lig As Integer
Dim cel As Range

With Sheets("Mes adj 1")
    On Error Resume Next
    .ListObjects("Tableau1").DataBodyRange.Delete
    On Error GoTo 0
    dlg = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A3:E" & dlg).Copy
    .Range("Tableau1[RPL Family]").PasteSpecial Paste:=xlPasteValues
    .Range("F3:K" & dlg).Copy
    .Range("Tableau1[LAUNCHED QTY]").PasteSpecial Paste:=xlPasteValues

    For Each cel In .ListObjects("Tableau1").ListColumns(1).DataBodyRange
        lig = WorksheetFunction.Match(cel.Value, Range("A:A").EntireColumn, 0)
        cel.Offset(0, 5) = Sheets("CAT LIST").Range("B" & lig).Value
        cel.Offset(0, 6) = Sheets("CAT LIST").Range("C" & lig).Value
        lig = 0
    Next cel
End With
End Sub

Désolé je pense que je suis mal expliqué sur l'utilisation du tableau de droite. Il contient les données du tableau gauche + celle du tableau du milieu. Il faut ajouter les valeurs du tableau du milieu dans les colonnes correspondantes du tableau de droite.

Désolé je pense que je suis mal expliqué sur l'utilisation du tableau de droite. Il contient les données du tableau gauche + celle du tableau du milieu. Il faut ajouter les valeurs du tableau du milieu dans les colonnes correspondantes du tableau de droite.

Comme je peux savoir cela dans votre fichier....
Ben dites moi quelles sont les colonnes concernées tableau de gauche et du milieu qui vont dans le tableau de droite

Vraiment désolé...

Y3= F3+M3

Z3= G3+N3

AA3= Z3/Y3

AC3= J3+O3

essayez comme ceci

Sub test()
Dim dlg As Integer, lig As Integer
Dim cel As Range

With Sheets("Mes adj 1")
    On Error Resume Next
    .ListObjects("Tableau1").DataBodyRange.Delete 'ListRows.Add
    On Error GoTo 0
    dlg = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A3:E" & dlg).Copy
    .Range("Tableau1[RPL Family]").PasteSpecial Paste:=xlPasteValues
    .Range("Y3").FormulaR1C1 = "=RC[-12]+RC[-19]"
    .Range("Z3").FormulaR1C1 = "=RC[-12]+RC[-19]"
    .Range("AA3").FormulaR1C1 = "=[@[Good Qty]]/[@[Launched Qty]]"
    .Range("AC3").FormulaR1C1 = "=RC[-14]+RC[-19]"

    For Each cel In .ListObjects("Tableau1").ListColumns(1).DataBodyRange
        lig = WorksheetFunction.Match(cel.Value, Range("A:A").EntireColumn, 0)
        cel.Offset(0, 5) = Sheets("CAT LIST").Range("B" & lig).Value
        cel.Offset(0, 6) = Sheets("CAT LIST").Range("C" & lig).Value
        lig = 0
    Next cel
End With
End Sub

Cordialement

Bonjour,

Au niveau des 2 colonnes rajoutées depuis la feuille CAT LIST Les données ne correspondent pas et je ne trouve pas de solution...

Bonjour

Remplacez cette partie de code

    For Each cel In .ListObjects("Tableau1").ListColumns(1).DataBodyRange
        On Error Resume Next
        lig = WorksheetFunction.Match(cel.Value, Sheets("CAT LIST").Range("A:A").EntireColumn, 0)
        If lig > 0 Then
            cel.Offset(0, 5) = Sheets("CAT LIST").Range("B" & lig).Value
            cel.Offset(0, 6) = Sheets("CAT LIST").Range("C" & lig).Value
        End If
        lig = 0
    Next cel

Cordialement

Rebonjour,

Je souhaiterais

- Rajouter une condition à la colonne Yield du tableau de droite afin de réaliser la division seulement si le diviseur est supérieur à zéro

-Faire en sorte que la dimension de la mise en forme du tableau du milieu s'adapte aux autres tableaux.

2verif-costing.xlsm (37.52 Ko)

Je vous remercie par avance.

Rechercher des sujets similaires à "adapter nombre ligne automatiquement"