Liste déroulante avec condition et macro "COPIER"

Re

Word n'étant pas ma grande passion, après recherches, regarde si ça te convient :

22matthieu2701.zip (41.94 Ko)

Nad

Nad a écrit :

Re

Word n'étant pas ma grande passion, après recherches, regarde si ça te convient :

Nad

Je dois le copier sur un doc word mais qui est intégré dans un logiciel spécifique à mon entreprise. Je souhaiterais juste la copie (comme sur la 1ere macro que tu m'as faite) et que moi j'aille le coller ou je le souhaite. Je dois aussi le copier à d'autre endroit mais qui eux ne sont pas du word ou du excel.

Re

J'ai du mal à te suivre.

Les 2 secondes demandées c'est le temps de réaliser la copie ? Si c'est le cas, il vaudrait mieux suspendre la macro le temps de ta copie.

Pour copier la plage sans la bordure, tu peux d'abord la copier dans le fichier (exemple en N2) et tu copies la nouvelle plage, sois N2:S3

Tu ouvres ton fichier et tu colles.

Range("C17:H20").Copy
Range("N2").PasteSpecial Paste:=xlPasteAllExceptBorders
Range("N2:S3").Copy

Nad

On va reprendre du début. Je vais expliquer ce que je veux et tu me diras comment on peut faire.

Dans la plage C17:H18, je vais faire afficher un commentaire type. Les infos de ce texte va être fait par rapport aux éléments rentrés dans F2, F3, Le tableau annulation/Facturation. Et selon le type de RIG (F2)(inversion, VPE), un tableau va se créer sur la plage F2:H15. Une fois le tableau rempli, les infos vont aussi compléter le commentaire type.

Dans la plage C19:H20, la personne pourra compléter le commentaire type.

Je souhaite copier tout ce qui est noté dans la plage C17:H20 (sans format, sans bordures). Je vais ensuite faire un coller dans deux applications spécifique à mon entreprise. Je n'ai donc pas accès au collage spécial.

Lorsque je clique sur la macro"Copier", je souhaite qu'un message "Copie effectuée" apparaisse puis disparaisse au bout de 2 secondes afin d'être sur que le texte à bien été copié et de ne pas avoir à cliquer sur OK pour confirmer.

Est-ce que c'est plus clair ?

Re

Je ne trouve pas ton idée très bonne car si une cellule est sélectionnée avant que tu colles tu perds la copie. Il serait plus judicieux (à mon avis) de mettre en pause la macro et de cliquer sur un OK quand le collage est effectué pour être certain de garder cette copie en mémoire.

Quoi qu'il en soit, je pense que ce code fait ce que tu désires

Sub Copier()
Application.ScreenUpdating = False
Dim Wrd As Word.Application

Range("C17:H20").Copy
Range("Z2").PasteSpecial Paste:=xlPasteValues
Range("Z2:AE5").Copy

ActiveSheet.Shapes("MonBouton").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage"
End Sub

Nad

Ca marche très bien. Merci

Par contre, comment faire pour faire un espace entre le message type (C17:H18) et le commentaire (19:H20). Car quand je fais le "coller" les deux message sont coller.

Comme ceci : Correction index de MES du 01/01/2013 - Lire 50 au lieu de 15.MES faite avec estimation

La macro "Macro1" sert à quelque chose ? Je peux la supprimer ?

Comment faire si je veux modifier la forme du message "Copie effectuée" ?

14matthieu2701.zip (40.54 Ko)

Re

Je t'ai effacé les macros inutiles.

Par contre, je n'ai pas le même résultat que toi quand je colle dans word

capture

Pour modifier la forme, je ne peux que te renvoyer sur le lien youtube plus haut.

Nad

P.S. : Quand tu réponds, ne clique pas sur CITER mais sur REPONDRE (en bas)

Sur word ca fais pareil que toi. Mais essaye de le coller, par exemple; dans la barre d'adresse de ton navigateur. Le logiciel dans lequel je dois faire mon coller à une seule ligne.

Si je veux le coller dans Word, est-ce qu'on peut faire que les phrases du commentaire type et du commentaire soit à la suite et non en dessous ?

J' ai vu ton lien youtube mais je n'arrive pas à faire apparaitre le carré avec "copie effectuée" pour le modifier.

Re

Tu veux donc sur une seule ligne. Ton message précédent expliquait le contraire.

Remplace le code par celui-ci :

Sub Copier()
Application.ScreenUpdating = False
Dim mot

mot = Range("C17")
mot = mot & " " & Range("C19")
Range("Z2") = mot
Range("Z2").Copy

ActiveSheet.Shapes("MonBouton").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage"
End Sub

Pour modifier la forme, bloque cette ligne dans la macro COPIER

'Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage"

Lance la macro COPIER - La forme est disponible

Quand tu as fini ta modification, lance la macro EffacerMessage et réactive la ligne Application.OnTime Now...

Nad

Merci beaucoup beaucoup de ton aide. J'ai ce que je souhaitais.

Rechercher des sujets similaires à "liste deroulante condition macro copier"