Stoper l'option copier dans une macro.

Résolu
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. Bonjour,

    pour annuler le mode copie ou couper:

    Application.CutCopyMode = False
    1
    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
      1. 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
        1. 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
          1. 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. Modérateur
              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. 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. Modérateur
              il tests sur 65536 lignes?
              Non.
              End(xlUp) remonte la colonne vers le haut,
              à partir de Range("A65536")
              0
            4. 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