Excel: Reporter une sélection de lignes dans une feuille
Résolu/Fermé
A voir également:
- Comment reporter une ligne excel sur une autre feuille
- Comment aller à la ligne sur excel - Guide
- Calculer une moyenne sur excel - Guide
- Déplacer une colonne excel - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
14 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 25/10/2013 à 10:18
Modifié par lermite222 le 25/10/2013 à 10:18
Bonjour,
Excel peut faire beaucoup plus compliqué que ça :-)
Ajouter une feuille que tu nomme Recap
Dans l'éditeur de code (Alt+F11) Ajouter un module : Module1
Dans ce module, copier le code suivant
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Excel peut faire beaucoup plus compliqué que ça :-)
Ajouter une feuille que tu nomme Recap
Dans l'éditeur de code (Alt+F11) Ajouter un module : Module1
Dans ce module, copier le code suivant
Option Explicit
Sub Recapitulatif()
Dim Lig As Long, DerLig As Long, LigEcrire As Long
Dim Wks As Worksheet
Application.ScreenUpdating = False
For Each Wks In Worksheets
With Wks
.Cells.ClearContents
If .Name <> "Recap" Then
'supposons la cellule avec les x en colonne F (à adapter)
For Lig = 1 To .Range("F" & Rows.Count).End(xlUp).Row
If LCase(.Cells(Lig, "F")) = "x" Then
LigEcrire = LigEcrire + 1
.Rows(Lig).Copy Sheets("Recap").Rows(LigEcrire)
'Mettre le nom de la feuille en colonne A
Sheets("Recap").Cells(LigEcrire, "A").Insert Shift:=xlToRight
Sheets("Recap").Cells(LigEcrire, "A") = .Name
End If
Next Lig
End If
End With
Next
Sheets("Recap").Select
End Sub
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
29 oct. 2013 à 02:39
29 oct. 2013 à 02:39
Ouupps, j'ai fait une modif après mes test, c'était le petit problème.
Sinon y avait rien à faire si ce n'est les lettres à changer comme tu a fait.
A+
Sinon y avait rien à faire si ce n'est les lettres à changer comme tu a fait.
Sub Recapitulatif()Comme ça, ça va fonctionner.
Dim Lig As Long, DerLig As Long, LigEcrire As Long
Dim Wks As Worksheet
Application.ScreenUpdating = False
Sheets("Recap").Cells.ClearContents
LigEcrire = 3 'Commencera à la ligne 4
For Each Wks In Worksheets
With Wks
If .Name <> "Recap" Then
'supposons la cellule avec les x en colonne F: j'ai laissé Fexdprès pour l'exemple
For Lig = 1 To .Range("F" & Rows.Count).End(xlUp).Row
If LCase(.Cells(Lig, "F")) = "x" Then
LigEcrire = LigEcrire + 1
.Rows(Lig).Copy Sheets("Recap").Rows(LigEcrire)
'Mettre le nom de la feuille en colonne A: là je vois pas ce qu'il faut faire
'Y a rien à faire, le nom de la feuille est écrit en colonne A, si tu ne veux pas le nom
'tu peu supprimer ces deux lignes de code.
Sheets("Recap").Cells(LigEcrire, "A").Insert Shift:=xlToRight
Sheets("Recap").Cells(LigEcrire, "A") = .Name
End If
Next Lig
End If
End With
Next
Sheets("Recap").Select
End Sub
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
30 oct. 2013 à 01:46
30 oct. 2013 à 01:46
Mais oui, quand je te disais que c'était simple.. hiiiii
Sub Recapitulatif_V3()A+
Dim Lig As Long, DerLig As Long, LigEcrire As Long, S As String
Dim Wks As Worksheet
Application.ScreenUpdating = False
Sheets("Recap").Cells.ClearContents
LigEcrire = 3 'Commencera à la ligne 4
For Each Wks In Worksheets
With Wks
If .Name <> "Recap" Then
'supposons la cellule avec les x en colonne F: j'ai laissé Fexdprès pour l'exemple
For Lig = 1 To .Range("F" & Rows.Count).End(xlUp).Row
S = LCase(.Cells(Lig, "F"))
'C'est ici la sélection des critères
If S = "x" Or S = "y" Or S = "z" Then
LigEcrire = LigEcrire + 1
.Rows(Lig).Copy Sheets("Recap").Rows(LigEcrire)
'Mettre le nom de la feuille en colonne A: là je vois pas ce qu'il faut faire
'Y a rien à faire, le nom de la feuille est écrit en colonne A, si tu ne veux pas le nom
'tu peu supprimer ces deux lignes de code.
Sheets("Recap").Cells(LigEcrire, "A").Insert Shift:=xlToRight
Sheets("Recap").Cells(LigEcrire, "A") = .Name
End If
Next Lig
End If
End With
Next
Sheets("Recap").Select
End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
25 oct. 2013 à 00:59
25 oct. 2013 à 00:59
Bonjour,
Quel est la structure de tes tableaux ? toujours le même nombre de lignes ? toujours la même colonne à reporter ?
Tu veux mettre la colonne en question sur une seule feuille avec les résultat l'un à la suite de l'autre ?
Explique plus clairement Stp
A+
Quel est la structure de tes tableaux ? toujours le même nombre de lignes ? toujours la même colonne à reporter ?
Tu veux mettre la colonne en question sur une seule feuille avec les résultat l'un à la suite de l'autre ?
Explique plus clairement Stp
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pardon pour le manque de clarté.
Je recherche seulement un report, mais par ligne: j'ai une dizaine de feuilles dans le même classeur pour suivre des interventions techniques sur différents sites. Ce que je cherche c'est que les lignes qui auraient par exemple un "x" dans une colonne apparaissent sur une onzième feuille afin de suivre les affaires en cours marquées "x" sur les autres feuilles.
Le nombre de lignes ne sera donc pas le même d'une feuille à l'autre et ce sont bien les lignes que je souhaite reporter pas les colonnes.
Je pense que c'est un peu ambitieux pour Excel mais comme je sais qu'il y a ici des as, j'essaie quand même :)
Je recherche seulement un report, mais par ligne: j'ai une dizaine de feuilles dans le même classeur pour suivre des interventions techniques sur différents sites. Ce que je cherche c'est que les lignes qui auraient par exemple un "x" dans une colonne apparaissent sur une onzième feuille afin de suivre les affaires en cours marquées "x" sur les autres feuilles.
Le nombre de lignes ne sera donc pas le même d'une feuille à l'autre et ce sont bien les lignes que je souhaite reporter pas les colonnes.
Je pense que c'est un peu ambitieux pour Excel mais comme je sais qu'il y a ici des as, j'essaie quand même :)
Bonjour,
voilà ce que j'ai fait (et à un moment j'ai forcément faux puisque je là je n'ai pas réussi à faire fonctionner tout ça):
- Création d'une feuille Recap
- Insertion du code dans le Module1
- Je change les deux "F" du code par "H" puisqu'il s'agit de la colonne qui contient les "x"
- je pense que c'est là que je me trompe: "'Mettre le nom de la feuille en colonne A": que faut-il faire précisément?
Aujourd'hui j'ai 3 feuilles avec des x dans les colonnes H, que faut-il faire sur ces feuilles pour que les lignes sélectionnées se reportent?
Merci beaucoup pour cette première réponse, il semble que tout soit possible sur Excel, je ne désespère pas :)
voilà ce que j'ai fait (et à un moment j'ai forcément faux puisque je là je n'ai pas réussi à faire fonctionner tout ça):
- Création d'une feuille Recap
- Insertion du code dans le Module1
- Je change les deux "F" du code par "H" puisqu'il s'agit de la colonne qui contient les "x"
- je pense que c'est là que je me trompe: "'Mettre le nom de la feuille en colonne A": que faut-il faire précisément?
Aujourd'hui j'ai 3 feuilles avec des x dans les colonnes H, que faut-il faire sur ces feuilles pour que les lignes sélectionnées se reportent?
Merci beaucoup pour cette première réponse, il semble que tout soit possible sur Excel, je ne désespère pas :)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
28 oct. 2013 à 13:13
28 oct. 2013 à 13:13
Quel est l'erreur que tu a ?
Donne plus de détails sur le non-fonctionnement.
Donne plus de détails sur le non-fonctionnement.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
28 oct. 2013 à 17:34
28 oct. 2013 à 17:34
Comment tu fais pour lancer la macro ?
J'ai créé un bouton avec la macro dessus, classique. Au point où j'en suis lorsque je la lance toutes les données de toutes les feuilles de mon classeur sont effacées!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
28 oct. 2013 à 18:06
28 oct. 2013 à 18:06
Poste un exemple de ton classeur (sans donnée confidentielle) sur Cjoint.com
Avec la macro comme tu l'a modifié.
Avec la macro comme tu l'a modifié.
Bonjour,
excellent merci infiniment!!
Oserais-je corser la chose? Je souhaiterais que la macro sélectionne et reporte dans le recap les x mais aussi des y... voire des z. Possible?
excellent merci infiniment!!
Oserais-je corser la chose? Je souhaiterais que la macro sélectionne et reporte dans le recap les x mais aussi des y... voire des z. Possible?
Aah c'est si facile que ça!?
du coup je continue eheh:
Dans chaque feuille j'ai une colonne comportant des dates. je souhaite maintenant que la macro classe automatiquement les lignes reportées dans le recap par chronologie de dates de cette colonne lorsque je la lance.
Puisque que c'est si facile je n'hésite pas à continuer :-D
du coup je continue eheh:
Dans chaque feuille j'ai une colonne comportant des dates. je souhaite maintenant que la macro classe automatiquement les lignes reportées dans le recap par chronologie de dates de cette colonne lorsque je la lance.
Puisque que c'est si facile je n'hésite pas à continuer :-D
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
30 oct. 2013 à 11:21
30 oct. 2013 à 11:21
Bon, y a des limites, nous ne faisons pas des appli "clés sur portes"...
A toi de travailler maintenant.
Tu peu trier le résultat avec la fonction d'Excel Trier.
Si tu veux que ce soit par macro sert-toi de l'éditeur de macro.
A+
A toi de travailler maintenant.
Tu peu trier le résultat avec la fonction d'Excel Trier.
Si tu veux que ce soit par macro sert-toi de l'éditeur de macro.
A+