Bonjour à tous.
Je me tourne vers vous pour essayer de trouver une solution à mon problème.
Je souhaite créer une macro me permettant de recopier automatiquement des lignes d’un tableau dans d’autre. En feuille 1 j’ai une liste générale de personnes avec en colonne D leur groupe d’attribution (1, 2 ou 3).
Je souhaite faire en sorte qu’en fonction du n° de groupe cela recopie automatiquement la ligne de la personne dans un des tableaux sur les feuilles suivantes. Ceux du groupe 1 dans le tableau feuille 2, ceux du groupe 2 dans le tableau feuille 3…
Dans le fichier joint j’ai un début de code mais je bloque pour la suite. Je ne trouve pas le code pour le faire tourner sur l’ensemble des lignes du tableau feuille 1.
Merci par avancetest001.xlsm (21,7 Ko)
Bonjour @toushussss,
C’est tout ce que j’ai dans ma besace actuellement
Donc voici une proposition par formule matricielle à valider avec ctrl + maj + entrée
Voir aussi le “Gestionnaire de noms”:
Fichier en retour ICI==> toushussss V1.xlsm (25,7 Ko)
Cordialement.
Super mdo ç’est impeccable.
Par contre je vais encore t’embêter mais qu’est ce que je peux rajouter dans la formule pour également copier la trame de la cellule (couleur, bordure…)
Merci encore
Re @toushussss,
Voici une nouvelle proposition par VBA.
Dans la feuille active:
Option Explicit
Dim f As Worksheet, fd As Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set fd = ActiveSheet
If Not Intersect(Target, Range("D2:D" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
On Error GoTo NlleF
Set f = Sheets(Target.Value)
On Error GoTo 0
fd.Range(fd.Cells(Target.Row, "A"), fd.Cells(Target.Row, "C")).Copy f.Range("A" & Rows.Count).End(xlUp)(2)
End If
fin:
Application.EnableEvents = True
Exit Sub
NlleF:
If Target.Value = "" Then GoTo fin
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = Target.Value
fd.Range("A1:C1").Copy ActiveSheet.Range("A1")
Resume
End Sub
Comment ça fonctionne:
Pour chaque Groupe ( de 1 à x) validé dans la “Feui1” si la feuille “Groupe x” n’existe pas elle se créer.
Puis à chaque validation dans les cellules de la colonne “D” on copie les plages de cellules de “A à C” de la “Feuil1” dans les feuilles “Groupe x” concernées.
Les formats de cellules suivront, de plus les titres des colonnes “A1 à C1” de la “Feuil1” seront créés dans chaque nouvelle feuille avec sont format d’origine.
Ci-joint ton fichier en retour ICI==> toushussss V2.xlsm (18,4 Ko)
Pour lancer l’exécution de la macro, n’oublie pas de revalider chaque cellules de la colonne “D”.
Cordialement.
Super merci beaucoup.