Stoper l'option copier dans une macro.

Résolu
Alexver Messages postés 44 Statut Membre -  
Alexver Messages postés 44 Statut Membre -
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

5 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    pour annuler le mode copie ou couper:

    Application.CutCopyMode = False
    1
  2. foo
     
    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
  3. Alexver Messages postés 44 Statut Membre
     
    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
  4. foo
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alexver Messages postés 44 Statut Membre
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      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
    2. Alexver Messages postés 44 Statut Membre
       
      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
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      il tests sur 65536 lignes?
      Non.
      End(xlUp) remonte la colonne vers le haut,
      à partir de Range("A65536")
      0
    4. Alexver Messages postés 44 Statut Membre
       
      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