Macro - copier/coller conditionnel
Fermé
LizouChou
Messages postés
4
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
17 novembre 2017
-
15 nov. 2017 à 14:37
via55 Messages postés 14507 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 31 décembre 2024 - 17 nov. 2017 à 16:56
via55 Messages postés 14507 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 31 décembre 2024 - 17 nov. 2017 à 16:56
A voir également:
- Macro - copier/coller conditionnel
- Copier coller pdf - Guide
- Historique copier-coller android - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Arobase copier coller - Forum Clavier
- Copier-coller - Accueil - Windows
7 réponses
via55
Messages postés
14507
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
31 décembre 2024
2 738
15 nov. 2017 à 17:54
15 nov. 2017 à 17:54
Bonjour
1) Oui il est indispensable d'avoir un exemple même simplifié pour connaître la structure exacte
2) Pas forcément obligé de passer par une macro, c'est surement possible apr formules. Tiens-tu vraiment à une macro ?
Cdlmnt
Via
1) Oui il est indispensable d'avoir un exemple même simplifié pour connaître la structure exacte
2) Pas forcément obligé de passer par une macro, c'est surement possible apr formules. Tiens-tu vraiment à une macro ?
Cdlmnt
Via
LizouChou
Messages postés
4
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
17 novembre 2017
16 nov. 2017 à 08:53
16 nov. 2017 à 08:53
Bonjour,
Une formule pourrait probablement convenir mais paradoxalement, je comprends beaucoup mieux les macros que les formules (logique plus littéraire que mathématique :-) ).
Le soucis principal est que le fichier peut pas mal bouger d'où mon idée de créer un copier/coller dynamique plutôt que quelque chose lié à la cellule. Je pourrais aussi fonctionner avec une plage nommée mais je trouve le fonctionnement assez lourd.
Voici pour le moment où j'en suis :
' Sélection du tableau IQ colonne category : fonctionne
Sheets("Summary").Select
Range("IQ[Category]").Select
'Si category = blabla => copie ligne dans blabla : ne fonctionne pas
If ("IQ[@Category]" = "Engineering") Then
ActiveCell.Select
Selection.Copy
Sheets("Engineering").Select
Range("IQEng").Select
ActiveSheet.Paste
End If
Et voici un lien pour télécharger le fichier simplifié : https://onedrive.live.com/redir?resid=93B77EA8D4E4F38D!2134&authkey=!ACoBHYOLj2257Z4&ithint=file%2cxlsx
Merci de votre aide!
Une formule pourrait probablement convenir mais paradoxalement, je comprends beaucoup mieux les macros que les formules (logique plus littéraire que mathématique :-) ).
Le soucis principal est que le fichier peut pas mal bouger d'où mon idée de créer un copier/coller dynamique plutôt que quelque chose lié à la cellule. Je pourrais aussi fonctionner avec une plage nommée mais je trouve le fonctionnement assez lourd.
Voici pour le moment où j'en suis :
' Sélection du tableau IQ colonne category : fonctionne
Sheets("Summary").Select
Range("IQ[Category]").Select
'Si category = blabla => copie ligne dans blabla : ne fonctionne pas
If ("IQ[@Category]" = "Engineering") Then
ActiveCell.Select
Selection.Copy
Sheets("Engineering").Select
Range("IQEng").Select
ActiveSheet.Paste
End If
Et voici un lien pour télécharger le fichier simplifié : https://onedrive.live.com/redir?resid=93B77EA8D4E4F38D!2134&authkey=!ACoBHYOLj2257Z4&ithint=file%2cxlsx
Merci de votre aide!
via55
Messages postés
14507
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
31 décembre 2024
2 738
16 nov. 2017 à 16:59
16 nov. 2017 à 16:59
Bonjour
Dans la macro tu sélectionnes une plage mais il faut ensuite boucler sur toutes les cellules de la plage et lorsqu'on trouve Engeenering copier la cellule avant pour l'activité et la coller dans Summary(en indiquant une cellule précise et pas une plage) puis copier la cellule après pour Owner et la coller dans Summary
La macro sera alors :
Cdlmnt
Via
Dans la macro tu sélectionnes une plage mais il faut ensuite boucler sur toutes les cellules de la plage et lorsqu'on trouve Engeenering copier la cellule avant pour l'activité et la coller dans Summary(en indiquant une cellule précise et pas une plage) puis copier la cellule après pour Owner et la coller dans Summary
La macro sera alors :
Sub Copy() ' Sélection du tableau IQ colonne category Sheets("Summary").Select Range("IQ[Category]").Select 'Si category = blabla => copie ligne dans blabla ' boucle sur les cellules de la plage For Each Cell In Range("IQ[Category]") 'si Engineering If Cell = "Engineering" Then 'copie valeur cellule précédente et colle en B7 d'Engineering Cell.Offset(0, -1).Select Selection.Copy Sheets("Engineering").Select Range("B7").Select ActiveSheet.Paste ' reposition dans Summary, sélection cellule à droite et copie dans E7 d'Engineering Sheets("Summary").Select Range("IQ[Category]").Select Cell.Offset(0, 1).Select Selection.Copy Sheets("Engineering").Select Range("E7").Select ActiveSheet.Paste End If Next End Sub
Cdlmnt
Via
LizouChou
Messages postés
4
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
17 novembre 2017
17 nov. 2017 à 08:36
17 nov. 2017 à 08:36
Génial. Ça m'a l'air de fonctionner comme je le voudrais. MERCI! Je vais le tester dans mon gros fichier maintenant. Question : Pourquoi as-tu mis "Next" à la fin avant "End Sub"?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LizouChou
Messages postés
4
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
17 novembre 2017
17 nov. 2017 à 09:17
17 nov. 2017 à 09:17
Je viens de le tester. dans mon fichier d'origine. Malheureusement, ceci ne fonctionne que si l'item recherché n'apparait qu'une fois. Or, la plupart du temps il apparait plusieurs fois et de façon variable (2,3,4,5,...fois). Voir dans le fichier du lien pour les lignes "GMP" qui doivent être copiées dans l'onglet "QC GMP".
https://onedrive.live.com/redir?resid=93B77EA8D4E4F38D!2134&authkey=!ACoBHYOLj2257Z4&ithint=file%2cxlsx
Et tant qu'à compliquer l'histoire... :-) Les références de copie dans les onglets sont fixes (ex : A15) dans ta proposition. Y a t'il un moyen de demander à Excel de copier dans une plage nommée une ligne à la suite de l'autre? Ou de copier un bloc de lignes dans une plage nommée? Toutes les lignes de même catégorie seront en effet triées avant la copie de sorte qu'elles seront toutes rassemblées.
Désolée de compliquer l'affaire. Le fichier en exemple est fort simplifié mais le fichier d'origine est complexe et amené à bouger avec des ajouts d'onglets et de lignes dans summary donc il faut qu'il soit le plus modulaire possible. :-) de plus, ne connaissant pas toutes les implications, j'essaie de vous donner un max d'infos sans vous noyer non plus... :-s
Merci merci merci!!!!
https://onedrive.live.com/redir?resid=93B77EA8D4E4F38D!2134&authkey=!ACoBHYOLj2257Z4&ithint=file%2cxlsx
Et tant qu'à compliquer l'histoire... :-) Les références de copie dans les onglets sont fixes (ex : A15) dans ta proposition. Y a t'il un moyen de demander à Excel de copier dans une plage nommée une ligne à la suite de l'autre? Ou de copier un bloc de lignes dans une plage nommée? Toutes les lignes de même catégorie seront en effet triées avant la copie de sorte qu'elles seront toutes rassemblées.
Désolée de compliquer l'affaire. Le fichier en exemple est fort simplifié mais le fichier d'origine est complexe et amené à bouger avec des ajouts d'onglets et de lignes dans summary donc il faut qu'il soit le plus modulaire possible. :-) de plus, ne connaissant pas toutes les implications, j'essaie de vous donner un max d'infos sans vous noyer non plus... :-s
Merci merci merci!!!!
via55
Messages postés
14507
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
31 décembre 2024
2 738
17 nov. 2017 à 13:05
17 nov. 2017 à 13:05
Bonjour
1) Le Next est exigé pour la boucle For
2) Oui on peut faire copier les données en suivant, il faut chaque fois créer une nouvelle ligne dans le tableau de destination
Je regarde cela dès que possible
Cdlmnt
Via
1) Le Next est exigé pour la boucle For
2) Oui on peut faire copier les données en suivant, il faut chaque fois créer une nouvelle ligne dans le tableau de destination
Je regarde cela dès que possible
Cdlmnt
Via
via55
Messages postés
14507
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
31 décembre 2024
2 738
17 nov. 2017 à 16:56
17 nov. 2017 à 16:56
Re
A condition de supprimer les cellules fusionnées (qui font bugger les macros) dans les feuilles destinataires et de laisser au départ une ligne vide après chaque titre :
https://mon-partage.fr/f/BxaBOUJ3/
Raccourci clavier pour lancer la macro : Ctrl+a
Cdlmnt
Via
A condition de supprimer les cellules fusionnées (qui font bugger les macros) dans les feuilles destinataires et de laisser au départ une ligne vide après chaque titre :
https://mon-partage.fr/f/BxaBOUJ3/
Raccourci clavier pour lancer la macro : Ctrl+a
Cdlmnt
Via