Copier coller ligne et les X suivantes dans une autre feuille
Résolu/Fermé
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
-
Modifié par jordane45 le 9/12/2014 à 10:45
donromanodelasierra Messages postés 7 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 11 décembre 2014 - 11 déc. 2014 à 13:55
donromanodelasierra Messages postés 7 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 11 décembre 2014 - 11 déc. 2014 à 13:55
A voir également:
- Copier coller ligne et les X suivantes dans une autre feuille
- Copier coller pdf - Guide
- Historique copier-coller android - Guide
- Comment copier une vidéo youtube - Guide
- Copier-coller - Accueil - Informatique
- Aller à la ligne dans une cellule excel - Guide
9 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
Modifié par michel_m le 9/12/2014 à 11:38
Modifié par michel_m le 9/12/2014 à 11:38
Bonjour,
Pour 1 ou plusieurs personnes ?
Si plusieurs personnes, combien il y en a t'il (environ) ?
dans l'attente, d'avance merci
Michel
Pour 1 ou plusieurs personnes ?
Si plusieurs personnes, combien il y en a t'il (environ) ?
dans l'attente, d'avance merci
Michel
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
9 déc. 2014 à 11:45
9 déc. 2014 à 11:45
Merci de te pencher sur le sujet.
Pour 1 seule personne.
En fait chaque personne possède son propre document Excel.
Je souhaite donc une macro me permettant d'extraire les passions de chaque personne (donc de chaque doc Excel) dans une autre feuille.
Par contre, le nombre de passions est inconnu et la position de la première ligne des passions est également inconnue.
doncromanodelasierra
Pour 1 seule personne.
En fait chaque personne possède son propre document Excel.
Je souhaite donc une macro me permettant d'extraire les passions de chaque personne (donc de chaque doc Excel) dans une autre feuille.
Par contre, le nombre de passions est inconnu et la position de la première ligne des passions est également inconnue.
doncromanodelasierra
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
9 déc. 2014 à 14:08
9 déc. 2014 à 14:08
re,
Un principe avec choix du mot clé possible par macro paramétrée
j'ai mis colonne F un peu au hasard soit 5 "cinéma": à toi de voir
peut ^tre aussi nommée la feuille "sortie" du nom du mot clé
Un principe avec choix du mot clé possible par macro paramétrée
j'ai mis colonne F un peu au hasard soit 5 "cinéma": à toi de voir
peut ^tre aussi nommée la feuille "sortie" du nom du mot clé
Sub demander_motclé()
Dim mot1 As String
mot1 = "Passion" 'prévioir peut ^tre validation de données dans feuille avec les rubriques
Call detailler(mot1)
End Sub
'------
Sub detailler(mot1)
Dim Ligdeb As Byte, Ligfin As Byte
Dim T_mot
Application.ScreenUpdating = False 'fige l'écran
With ActiveSheet
'ligne où se trouve "passion"
Ligdeb = .Columns("A").Find(mot1, .Range("A1"), xlValues).Row
'ligne avant nouveau mot clé
Ligfin = .Columns("A").Find("*", .Range("A" & Ligdeb), xlValues).Row - 1
'mémorise les détails de la "passion"
T_mot = .Range(.Cells(Ligdeb, "A"), .Cells(Ligfin, "F"))
End With
Sheets.Add
With ActiveSheet
.Name = "sortie" '??? mot1 peut-^tre plus parlant si autre rubrique
'restitue les détails
.Range("A1").Resize(UBound(T_mot), 6) = T_mot
End With
End Sub
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
9 déc. 2014 à 17:43
9 déc. 2014 à 17:43
Super, ton code marche bien !
J'ai pu l'adapter à mes besoins !
Complexifions le problème, si tu veux bien.
Maintenant, imaginons que j'ai 3 personnes :

En utilisant le code suivant (avec adaptation de ta fonction)
J'obtiens cela en sortie :

Outre le fait que tout est découpé (tous les prénoms, tous les enfants, etc...), la case "passions" ne sort que pour le premier prénom ...
Je trouve cela étrange, étant donné que j'utilise la même ligne de code pour les prenoms et pour les passions.
Dois-je créer un nombre de fonctions égal au nombre de personne (qui dépasserons rarement 4) en changeant la position d'écriture (A10 ici) dans la ligne :
Merci d'avance.
donromanodelasierra
J'ai pu l'adapter à mes besoins !
Complexifions le problème, si tu veux bien.
Maintenant, imaginons que j'ai 3 personnes :

En utilisant le code suivant (avec adaptation de ta fonction)
Sub Macro1()
'Recherche et copie des donnees voulues
Dim mot1 As String
Dim mot2 As String
Dim mot6 As String
Sheets.Add
ActiveSheet.Name = "rapport_customisé"
Dim entree As Worksheet
Dim cellule As Range
Dim ligne As Range
Dim sortie As Range
mot1 = "prenom"
mot2 = "Enfants"
mot6 = "passions"
Set entree = Worksheets(2)
Set sortie = Worksheets(1).Range("A1")
For Each ligne In entree.UsedRange.Rows
For Each cellule In ligne.Cells
If InStr(cellule.Text, mot1) > 0 Then
'// On a trouvé le mot dans une cellule de la ligne
ligne.Copy Destination:=sortie
Set sortie = sortie.Offset(1)
'// Pas la peine de continuer à chercher dans cette ligne
Exit For
End If
Next
Next
For Each ligne In entree.UsedRange.Rows
For Each cellule In ligne.Cells
If InStr(cellule.Text, mot2) > 0 Then
'// On a trouvé le mot dans une cellule de la ligne
ligne.Copy Destination:=sortie
Set sortie = sortie.Offset(1)
'// Pas la peine de continuer à chercher dans cette ligne
Exit For
End If
Next
Next
For Each ligne In entree.UsedRange.Rows
For Each cellule In ligne.Cells
If InStr(cellule.Text, mot6) > 0 Then
'// On a trouvé le mot dans une cellule de la ligne
Call detailler(mot6)
Set sortie = sortie.Offset(1)
'// Pas la peine de continuer à chercher dans cette ligne
Exit For
End If
Next
Next
'Mise en forme
ActiveSheet.Columns("A:B").EntireColumn.AutoFit
End Sub
'------
Sub detailler(mot6)
Dim Ligdeb As Byte, Ligfin As Byte
Dim T_mot
Application.ScreenUpdating = False 'fige l'écran
With Worksheets(2)
'ligne où se trouve "passion"
Ligdeb = .Columns("A").Find(mot6, .Range("A1"), xlValues).Row
'ligne avant nouveau mot clé
Ligfin = .Columns("A").Find("*", .Range("A" & Ligdeb), xlValues).Row - 1
'mémorise les détails de la "passion"
T_mot = .Range(.Cells(Ligdeb, "A"), .Cells(Ligfin, "J"))
End With
Worksheets(1).Range("A10").Resize(UBound(T_mot), 10) = T_mot
End Sub
J'obtiens cela en sortie :

Outre le fait que tout est découpé (tous les prénoms, tous les enfants, etc...), la case "passions" ne sort que pour le premier prénom ...
Je trouve cela étrange, étant donné que j'utilise la même ligne de code pour les prenoms et pour les passions.
Dois-je créer un nombre de fonctions égal au nombre de personne (qui dépasserons rarement 4) en changeant la position d'écriture (A10 ici) dans la ligne :
Worksheets(1).Range("A10").Resize(UBound(T_mot), 10) = T_mot
Merci d'avance.
donromanodelasierra
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
Modifié par michel_m le 9/12/2014 à 18:31
Modifié par michel_m le 9/12/2014 à 18:31
Tu es bien gentil mais je t'ai demandé au départ si c'était pour une personne ou plusieurs; tu m'as répondu 1 seule: j'ai donc écrit une bidouille pour ta demande
maintenant c'est plusieurs !!!
Tu sais ce que tu veux ?
maintenant c'est plusieurs !!!
Tu sais ce que tu veux ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
10 déc. 2014 à 08:40
10 déc. 2014 à 08:40
Désolé, mon support de travail a évolué.
Au moment où j'ai posé la question, je n'imaginais pas que ce cas pouvait arriver.
En fait j'utilise un logiciel qui me sors des résultats qui prennent la forme de l'exemple que j'ai utilisé.
Mon objectif est de faire du post traitement de ces résultats (en sélectionnant les données qui m'intéressent).
Quand j'ai commencé à faire mon code VBA, le cas "plusieurs personnes" ne s'était pas présenté.
Je suis désolé, je sais ce que je veux, mais j'ai malheureusement oublié d'anticiper ce problème.
J'essaierai de ne plus commettre cette erreur.
donromanodelasierra.
Au moment où j'ai posé la question, je n'imaginais pas que ce cas pouvait arriver.
En fait j'utilise un logiciel qui me sors des résultats qui prennent la forme de l'exemple que j'ai utilisé.
Mon objectif est de faire du post traitement de ces résultats (en sélectionnant les données qui m'intéressent).
Quand j'ai commencé à faire mon code VBA, le cas "plusieurs personnes" ne s'était pas présenté.
Je suis désolé, je sais ce que je veux, mais j'ai malheureusement oublié d'anticiper ce problème.
J'essaierai de ne plus commettre cette erreur.
donromanodelasierra.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
10 déc. 2014 à 11:27
10 déc. 2014 à 11:27
Bonjour,
mets moi au moins une maquette de ce que tu as et de ce que tu veux obtenir
Non par images ce qui m'oblige à refaire ton classeur mais en joignant une pièce
Pour joindre une pièce: mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
mets moi au moins une maquette de ce que tu as et de ce que tu veux obtenir
Non par images ce qui m'oblige à refaire ton classeur mais en joignant une pièce
Pour joindre une pièce: mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
10 déc. 2014 à 14:44
10 déc. 2014 à 14:44
Bonjour,
Ce que j'ai est en feuille 1
Ce que je veux en 2
https://www.cjoint.com/?0LkoW6fdTyD
Actuellement, mon code me sort le tableau de mon message d'hier 17h43
Merci,
donromanodelasierra
Ce que j'ai est en feuille 1
Ce que je veux en 2
https://www.cjoint.com/?0LkoW6fdTyD
Actuellement, mon code me sort le tableau de mon message d'hier 17h43
Merci,
donromanodelasierra
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
10 déc. 2014 à 16:12
10 déc. 2014 à 16:12
Ok, merci
Je regarderai demain matin à la fraiche
Je regarderai demain matin à la fraiche
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
10 déc. 2014 à 16:47
10 déc. 2014 à 16:47
Merci beaucoup du temps que tu prends pour m'aider !
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
11 déc. 2014 à 10:39
11 déc. 2014 à 10:39
Bonjour,
ci joint proposition à adapter à ton contexte (nom des feuilles, nombre de colonnes)
restitution en feuille "ccm" pour comparer avec "top du top"
https://www.cjoint.com/?3LlkTcsuB0D
OK ?
ci joint proposition à adapter à ton contexte (nom des feuilles, nombre de colonnes)
restitution en feuille "ccm" pour comparer avec "top du top"
https://www.cjoint.com/?3LlkTcsuB0D
OK ?
donromanodelasierra
Messages postés
7
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
11 décembre 2014
11 déc. 2014 à 13:55
11 déc. 2014 à 13:55
Parfait !!
Merci beaucoup !
Merci beaucoup !