• Initiateur de la discussion Initiateur de la discussion Tan
  • Date de début Date de début

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 !

T

Tan

Guest
bonjour !

je voudrais créer une macro qui me permette de copier automatiquement
- la première ligne de mon tableau (titre des colonnes)
- et également les lignes que je sélectionne.

Cela peut être une fois la ligne 1 et 2 ou bien une autre fois la ligne 2 et 4, mais toujours avec la première ligne de mon tableau.

Pour le moment, je n'arrive qu'a sélectioner en fonction de plages pré-définies et non pas en fonction des lignes sélectionnées.

et la je sèche un peu kan même :ermm:

merci

Tan [file name=selection_20050503153653.zip size=6250]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/selection_20050503153653.zip[/file]
 

Pièces jointes

Bonjour all,

Cela devrait te convenir.

En faites il faut commencer par la selection de l'utilisateur pour ne pas la perdre, et ensuite copier les en-tetes des colonnes !

++

Creepy [file name=selection_20050503163726.zip size=7327]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/selection_20050503163726.zip[/file]
 

Pièces jointes

Une bosse avec Creepy, tant pis je te propose une solution quand même. reste à voir comment et quand tu veux appeller la macro.
Je vais regarder le code de Creepy ..

Sub MultipleRangeCopy()
Dim r1, r2, plusieursPlages As Range
Sheets('Feuil1').Activate
Set r1 = Range('A1:C1') ' c'est les titres
Set r2 = Selection 'c'est ta sélection
Set plusieursPlages = Union(r1, r2)
plusieursPlages.Copy Sheets('Feuil2').Range('A1') ' copie sur la feuille 2

End Sub


Vois si ça convient.

A++

EDITION!!!

l'activation de la feuille 1 est là pour s'assurer l'union des 2 plage; Tu peux bien sûr ajouter 'Application.CutCopyMode = False' à la fin
A+++

Message édité par: luki, à: 03/05/2005 16:58
 
Re,
une solution plus souple, simplement à partir d'un double clic sur une cellule, une plage de la même largeur que les titres est sélectionnée et copiée.
Si la plage des titres change, il faut adapter ' set Titres = range( ??)'
à mettre dans le module 1:

Sub MultiplageCopy()
Dim ActiveLine As Range, Titres As Range, Tout As Range

Set Titres = Range('A1:C1')
Set ActiveLine = Range(Cells(ActiveCell.Row, Titres.Column), Cells(ActiveCell.Row, Titres.Columns.Count))
Set Tout = Union(Titres, ActiveLine)
Tout.Copy Sheets('Feuil2').Range('A1')
Application.CutCopyMode = False
End Sub

à mettre dans le module de la feuille 1:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
MultiplageCopy
End Sub

Nota Bene : Le code pourrait être épuré, je n'ai pas utilisé trop de raccourcis pour qu'il reste compréhensible.

EDITION POUR CREEPY!!!
l'enregistreur marche bien 😉 il a seulement tendance à ajouter beaucoup de lignes inutiles! Ton code épuré (un peu)pourrait devenir ceci:

Sub Selections()
Selection.Copy Sheets('Feuil2').Range('A2')
Sheets('Feuil1').Range('a1:c1').Copy Sheets('Feuil2').Range('A1')
Application.CutCopyMode = False
End Sub

Tu peux écrire dans la même ligne , la source ET la destination.

A++

Message édité par: luki, à: 03/05/2005 17:34

Message édité par: luki, à: 03/05/2005 17:39
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
672
Retour