Copier coller des lignes dans des onglets

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jozerebel

XLDnaute Occasionnel
Bonjour à tous!!

J'ai une feuille de données avec des infos notamment le secteur des salariés.

J'ai ensuite autant d'onglets qu'il existe de secteurs différents.

Je souhaiterais prendre toutes les lignes correspondant à chaque nom d'onglet et les coller dans l'onglet correspondant...

Je poste un fichier pour plus de détails!!!

Merci d'avance.
 

Pièces jointes

Re : Copier coller des lignes dans des onglets

Bonjour Jozerebel, bonjour le forum,

je te propsoe la macro ci-dessous :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
 
With Sheets("A") 'prend en compte l'onglet "A"
    'définit la plage pl
    Set pl = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With 'fin de la prise en compte de l'onglet "A"
 
For Each cel In pl 'boucle sur toutes les cellules éditées cel de la plage pl
    'définit la cellule de destination (la première cellule vide de la colonne A de l'onglet indiqué en E)
    Set dest = Sheets(cel.Offset(0, 4).Value).Range("A65536").End(xlUp).Offset(1, 0)
    cel.EntireRow.Copy dest 'copie et colle la ligne
Next cel 'prochaine cellule de la boucle
End Sub
 
Re : Copier coller des lignes dans des onglets

Bonjour Robert et Merci pour ta réponse.

J'obtiens malheureusement un message d'erreur :

"Erreur d'exécution 9 : l'objet n'appartient pas à la sélection."


sur cette ligne :

Set dest = Sheets(cel.Offset(0, 4).Value).Range("A65536").End(xlUp).Offset(1, 0)


Une idée?

Merci.
 
Re : Copier coller des lignes dans des onglets

Bonjour jozerebel, bonjour Robert, bonjour le forum,

Voici une solution par formule.

Après avoir galéré avec sommeprod, j'ai fini par adopter index qui fonctionne si chaque onglet correspond à un salarié. S'il y en a plus d'un par onglet, ça se complique, pour moi en tout cas.

Code:
=INDEX(A!$A$1:$A$110;MIN(SI(NB.SI(A$1:A1;A!$A$2:$A$10)=0;SI((A!$A$2:$A$10<>"")*(A!$E$2:$E$10=$E$2)=1;LIGNE(A!$A$2:$A$10)))))&""

Formule matricielle à valider par Ctrl Maj entrée

A recopier sur tous les onglets vers le bas à partir de A2

Voir fichier.

Cordialement
 

Pièces jointes

Re : Copier coller des lignes dans des onglets

Bonjour le Jozerebel, Calvus, bonjour le forum,

Ça m'apprendra à ne pas avoir testé avant (chose que je fais rarement d'ailleurs...) !
En fait le nom des onglets contient des espaces et pas les cellules de la colonne E. Il faudrait, soit revoir le code (mais je sais pas comment), soit supprimer les espaces dans le nom des onglets et s'assurer que la personne qui édite les données n'en mette pas dans les cellules de la colonne E...
De plus comme le nom de tes onglets et une valeur numérique il faut aussi modifier la ligne :
Code:
    Set dest = Sheets([COLOR=red]Trim(CStr([/COLOR]cel.Offset(0, 4).Value)[COLOR=red]))[/COLOR].Range("A65536").End(xlUp).Offset(1, 0)
En pièce jointe une version où le nom des onglets est sans espace...
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
2 K
Retour