Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Coller des lignes tableau vers autres onglets selon critères

Nonno48

XLDnaute Nouveau
Bonjour
Tout est dit dans le titre.
Moi je ne sais pas faire.
Merci d'avance
Cordialement
Nonno48
 

Pièces jointes

  • ESSAI (2).xlsm
    108.5 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nonno, et bienvenu sur XLD,
Dans le tableau de ArchivCdes , comment fait on la différence entre les Consommables et les Equipements ?
Ensuite on colle en A7, K7 ou on colle à la suite des données déjà présentes ?
Pour finir, on prend l'onglet désigné par X3 ? ou plutôt celui désigné par X2 ?
 

Nonno48

XLDnaute Nouveau
Bonjour Sylvanu et merci.
Oups! Oui "X2" biens sur, il n'y a rien qui fait la différence entre Consommables et équipement, c'est moi qui choisis c'est pour cela qu'il faudrait peut être 2 macros? quant au collage je préférerai en haut des tableaux en décalant l'existant.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Deux approches :
1- On modifie le fichier car un tableau structuré ne doit pas avoir de lignes vides pour être traité comme tel en VBA. Et on modifie le nom des tableaux de chaque onglet pour retrouver facilement où coller.
2- On prend le fichier tel qu'il est et ... on fait avec.
J'ai opté pour la seconde approche avec ... 3 macros dont deux avec passages de paramètres et une commune :
VB:
Sub Consommables()
    Transfert [X2], 1
End Sub
Sub Equipement()
    Transfert [X2], 11
End Sub
Sub Transfert(Nom$, Colonne%)   ' Transfert le tableau ArchivCdes dans la feuille Nom, colonne A ou K
    On error Goto Fin
    L = 4
    While Cells(L, "N") <> "": L = L + 1: Wend  ' Dernière ligne occupée du tableau
    Tablo = Range("N4:U" & L - 1)               ' Transfert données dans array
    ' Range("N4:U" & L - 1).ClearContents ' Supprimer commentaires si le tableau d'entrée doit être effacé
    With Sheets(Nom)
        L = 7
        While .Cells(L, Colonne) <> "": L = L + 1: Wend ' Recherche première ligne libre
        .Cells(L, Colonne).Resize(UBound(Tablo, 1), UBound(Tablo, 2)) = Tablo   ' Copie des données
    End With
Fin:
End Sub
A noter qu'on peut supprimer le commentaire de la ligne 11 si on veut qu'après archivage les données soient effacées.
 

Pièces jointes

  • ESSAI (2) (2).xlsm
    109.4 KB · Affichages: 2

Discussions similaires

Réponses
1
Affichages
504
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…