Copier coller automatique
Bonjour,
Je n’ai jamais fait de macro, et à force de chercher il semble que mon problème peut être résolu avec ses fameuses macros.
Chaque jours je dois faire des choses répétitives que je souhaiterais restreindre au maximum.
Quand j’ai rempli les colonnes I, K,L et M (ou se trouve une formule déjà) je dois copier la ligne et aller la coller sur la feuille « A imprimer », revenir sur ma feuille « Résultats » touche « Echap » pour sortir de la fonction copier et sélectionner la colonne B.
Et là je recommence à chercher dans la colonne B le nom qui m’intéresse et insérer les données des colonnes I, K,L et M etc..
Je souhaiterais que la fonction copier/coller et retour en colonne B de la feuille « résultats » soit automatisée. J’ai bien essayé avec « faire une macro » mais le collage se fait sur la 1ère ligne seulement alors qu’il faut qu’elles se mettent à la suite au fur et à mesure que je rentre les données.
peut-être une autre solution : un bouton copier/coller, mais se bouton ne devrait pas être statique dans une cellule puisque j'ai près de 900 noms à gérer
je vous joins mon fichier sans les noms
Merci d’avance pour votre aide
Bonjour,
Voici une proposition avec une procédure qui se lancera lorsque tu effectueras un double-clic sur la cellule correspondant au nom.
A+
c'est super, un grand merci, mon travail va en être facilité
comme je travail pour deux départements est-ce que sans abuser de votre temps, vous pouvez faire la même chose sur le tableau ci-joint
merci
est-ce que vous pouvez faire la même chose sur le tableau ci-joint ?
Je vais faire mieux que ça, je vais t'apprendre à le faire sans moi.
Pour visualiser la procédure qui réalise la copie, tu fais clic droit sur l'onglet "Résultats" puis tu sélectionnes "Visualiser le code".
Tu accèdes ainsi au module de la feuille "Résultats".
Voici le code commenté afin que tu comprennes chaque ligne.
'On utilise l'évènement Worksheet.BeforeDoubleClick pour détecter un double-clic dans une cellule "Nom"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Si le double-clic a été effectué dans la colonne B (noms)
If Target.Column = 2 Then
'On inhibe l’action de double-clic par défaut
Cancel = True
'On désigne la feuille dans laquelle sera effectuée le collage
With Worksheets("A imprimer")
'On copie la ligne correspondant au nom
'Et on colle cette ligne dans la feuille "A imprimer"
Target.EntireRow.Copy .Range("A" & Rows.Count).End(xlUp)(2)
'On annule le mode Copier et on supprime la marque de sélection.
Application.CutCopyMode = False
'On sélectionne le nom
Target.Select
'On affiche un message pour indiquer que la copie a été réalisée
MsgBox "Copie de " & Target.Value & " effectuée."
End With
End If
End SubSi la structure de la feuille relative à l'autre département est identique à celle du premier, tu peux copier la même procédure dans le module de cette nouvelle feuille.
Tu devra simplement adapter le nom de la feuille dans laquelle sera effectuée le collage.
Si tu rencontres un problème, n'hésites pas à me renvoyer tes questions.
A+
résultat : j'ai réussi
une petit erreur que j'ai vite trouvé et voilà le résultat est là
de plus maintenant j'ai appris des choses
un grand merci Frangy pour ton aide précieuse
Bonjour à tous,
Je suis très intérressé par ce code, mais étant novice (très novice) en vba je n'arrive pas à effectuer une modification.
Je voudrais utiliser la copie spécial valeur ( je ne veux pas qu'il copie la formule). J'ai essayer en faisaint une macro de l'action que je voulais, mais je n'arrive pas à l'intégrer dans ta formule.
Le but final pour moi ce serait que lorsque j'appuie sur un bouton il fasse un copier/coller(valeur) d'une ligne ou plage de celluel sur une ligne en fonction d'un critère, dans mon cas si dans la collonne A la cellule est non vide alors recopier la ligne ou la plage cellule dans la feuille de destination, il serait bien aussi qu'il efface la feuille de destination avant de faire une nouvelle copie.
J'ai vu et lu pas mal de code, mais je nage...je coule même..
J'aime beaucoup les code comme ici ou on indique ce que cela fait, au moins on apprend
Quelqu'un pourrait-il m'aider et m'expliquer?
D'avance merci pour l'aide