Copie lignes dans d'autres onglets

Bonjour,

Je débute dans le VBA et "programmation" et j'ai besoin de votre aide.

Dans le fichier joint, j'aimerais que si la colonne H (réception) est égal à EC, alors toute la ligne s'affiche dans l'onglet "EC".

De même, si la colonne H (réception) est égal à PL, alors toute la ligne s'affiche dans l'onglet "PL".

Et enfin, si la colonne H (réception) est égal à TL, alors toute la ligne s'affiche dans l'onglet "TL".

J'ai fait des recherches qui avait l'air de fonctionner sur certain, mais je n'arrive pas à l'appliquer sur mon fichier...

Pouvez-vous m'aider ?

Merci d'avance, bonne journée!

Bonjour,

Vos feuilles EC, TL, ne sont pas identique à la feuille Commande. Les colonnes N et M doivent venir de la feuille Commandes ?
Ces deux colonnes concernent la date réception et remarque réception

Cordialement

en effet excusez-moi, je n'avais pas mis à jour les 3 derniers onglets.

Il n'y a pas de colonne à ajouter, ce souhaite juste faire un "copier coller" de la ligne concerné

Voici le fichier modifié

Ah ... bon je recommence alors

Vous devez garder la mise en forme ? les couleurs, les listes déroulantes (colonne H) ?

Oui oui je souhaite garder la mise en forme

Mettez ce code dans un module.
Ensuite placez vous sur la feuille COMMANDES et exécutez le

Sub test()
Dim tablo()
Dim dlg As Integer, i As Integer, J As Integer
Dim feuille As String

Application.ScreenUpdating = False
dlg = Sheets("Commandes").Range("D" & Rows.Count).End(xlUp).Row

ReDim tablo(dlg - 3, 9)
J = 0
For i = 0 To dlg - 3
    For J = 0 To 9
        tablo(i, J) = Sheets("Commandes").Cells(i + 3, J + 1)
    Next J
Next i

For i = 0 To UBound(tablo)
    feuille = tablo(i, 7)
    With Sheets(feuille)
        dlg = .Range("A" & .Rows.Count).End(xlUp).Row
        For J = 1 To 10
            .Cells(dlg + 1, J) = tablo(i, J - 1)
        Next J

        'Mise en forme
        With .Range("A3:J" & .Range("A" & Rows.Count).End(xlUp).Row)
            .BorderAround LineStyle:=xlContinuous
            .BorderAround Weight:=xlThin
            With .Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
            With .Borders(xlInsideHorizontal)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
        End With
    End With
Next i
Application.ScreenUpdating = True
End Sub

NB : Les feuilles EC, TL, PL sont sensées être créées. Il n'y a pas de contrôle dans le code.

si ok

Cordialement

Parfait ça fonctionne très bien!

Par contre c'est bizarre il ne me garde la mise en forme que sur le deux premières lignes

Par contre c'est bizarre il ne me garde la mise en forme que sur le deux premières lignes

Comment ça ? Quelle mise en forme ? Les bordures sont placées.

Edit : vous parlez de la mise en forme conditionnelle probablement. Là je ne m'en suis pas occupé et ai supposé que cela n'avait pas de raison d'être. Est-elle utile sachant que la MFC correspond aux couleurs établies en fonction du nom de la feuille et que le tableau serait de couleur identique après exécution du code

Rechercher des sujets similaires à "copie lignes onglets"