Stoper l'option copier dans une macro.

Résolu/Fermé
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013 - 22 juil. 2013 à 17:07
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013 - 23 juil. 2013 à 12:35
Bonjour,

Je suis sous Microsoft office 2007 et j'ai un tout petit soucis avec une macro.

La macro est la suivante:

Sub ajouter_un_produit_sans_supprimer()
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(1, 0)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(0, 13)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
End Sub

Je l'ai trouvé sur internet et adapter à mon problème: Je voulais en effet que des cellules d'une feuille 1 soit copier pour être inseré a la fin d'un tableau d'une feuille 2.

Elle fonctionne parfaitement grâce au "Bouton" avec laquel je la fait s'actionner.

Mon seul soucis et que lorsque j'actionne la commande, mes cellules reste en mode copier, et donc si j'appuie par mégarde sur entré elle se colle n'importe ou.

Pour éviter cela il me suffit évidement d'écrire ailleur, mais étant en entreprise et ne pouvant surveiller la vie de ce fichier, j'aimerais que cela ne puisse se produire en mon absence.

Si quelqu'un pouvait m'indiquer une phrase a ajouter afin que les cases copier ne soient plus en surbrillant (mode copier) .

Je vous remercie par avance de vos lumière.

Alex
A voir également:

5 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
22 juil. 2013 à 17:33
Bonjour,

pour annuler le mode copie ou couper:

Application.CutCopyMode = False
1
Bonjour

Plein de petit probleme

ex: Range("D3:D15").Copy
-
-
-
-
A la fin
Application.CutCopyMode = False
pour trouver la derniere ligne a partir de excel 2007
Range("A" & Rows.Count).End(xlUp).Row

A+
Maurice
1
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013
23 juil. 2013 à 09:41
Comme toujours, on trouve des solutions adaptés sur ce forum.

La phrase en fin marche parfaitement.

Merci F89009 et foo! :)

Maurice tu m'as donné un petit bonus avec la phrase
Range("A" & Rows.Count).End(xlUp).Row, elle sert donc a avoir la dernière ligne sur excel 2007?
0
Bonjour

Oui Range("A" & Rows.Count).End(xlUp).Row
evite de paper le nombre de ligne Range("$A$65536

et aussi Sheets("ajout_produit_composant") il faut mettre le codeName de la Feuil

Ex: Feuil1.Range("D3:D15").Copy
comme ca tu peux changer ton non d'onglet sans probleme

A+

Maurice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013
23 juil. 2013 à 11:32
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(1, 0)

devient donc

Set Derligne = Sheets("tableau").Range("A" & Rows.Count).End(xlUp).Row
Offset(1, 0) ?

Je fais ici une erreur puisque ça me met erreur de débogage ^^.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
23 juil. 2013 à 11:34
Salut,

.Row.Offset ou .Offset(1, 0).Row???
L'Offset se place avant le Row. Donc :
Set Derligne = Sheets("tableau").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
0
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013
Modifié par Alexver le 23/07/2013 à 11:51
Merci encore pijaku, au top sur la macro.
Comme tu peux le voir j'y connais quasi rien, j'ai fais ma premiére macro y'a un mois.
Mais j'essaye d'apprendre.

J'ai inseré cette instruction et sa ma fais un débogage. Ne vous embétez pas avec cela, sauf si vous trouver que ça a son importance.

Le Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(0, 13) fonctionné correctement, le seul soucis et qu'il tests sur 65536 lignes?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
23 juil. 2013 à 12:30
il tests sur 65536 lignes?
Non.
End(xlUp) remonte la colonne vers le haut,
à partir de Range("A65536")
0
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013
23 juil. 2013 à 12:35
D'accord tout s'explique ^^. Mon truc sur le tests c'était ma théorie alors que je n'y connais rien.

Merci en tout cas.
0