[VBA] Copier/coller des valeurs sans Select

Bonjour à tous,

"Le mieux est l'ennemi du bien" mais bon çà paraît plutôt simple

J'ai une macro (grâce à l'aide de l'enregistrement d'une macro) qui copie et colle des valeurs (35 fois) d'une feuille à une autre. Cependant lors de l'exécution de la macro les feuilles virevoltent 35 fois...

Voici 1 des 35 parties :

Sheets("Carte de score").Select

Range("I27").Select

Selection.Copy

Sheets("Données").Select

Range("Y3").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Avec une macro simple comme :

Sheets("Carte de score").Range("I27").Copy Sheets("Données").Range("Y3")

c'est rapide et çà n'affiche pas les feuilles mais çà copie et colle des formules...

Que dois-je modifier/ajouter ?

Bonjour

Pour "essayer" d'optimiser ta macro il faudrait en dire un peu plus, et mieux fournir le fichier

Ta macro se lance comment ?

A partir d'un bouton sur une page concernée ?

Les données à copier sont disséminées ou groupées ?

Etc ....

Il peut y avoir beaucoup de paramètres à prendre en compte si l'on veut simplifier une macro

A te lire

Bonjour Banzai,

Oui en effet les valeurs à copier sont disséminées un peu partout dans une feuille et les valeurs à coller sont ajoutés en dans une ligne d'un tableau sur une autre feuille et j'active la macro grâce à un bouton.

Mais je pensais que mon problème était de niveau débutant et je n'est pas préparé de feuille test (je ne peux pas diffuser le fichier source)

Cordialement

Bonjour

je ne peux pas diffuser le fichier source)

Pas besoin du fichier source mais d'un fichier reprenant la structure de ton fichier sources en indiquant quoi copier et où copier

Alors pas facile de trouver

Je t'ai fait un code qui à partir de cellules les copie dans une ligne

Le bouton appelant la macro est sur la page "Carte de score"

Mais ce n'est qu'un exemple, comme je te l'ai dis, sans connaitre tous les paramètres pas aisé de te trouver une solution

Sub Test()
Dim Dep
Dim I As Integer
Dim Lg As Long
Dim Cl As Integer

  Dep = Array("I27", "K25", "L32", "F12", "A2") ' Liste des cases à copier
  Lg = 4                                        ' Ligne de recopie
  Cl = 3                                        ' 1ère colonne de recopie
  With Sheets("Données")                        ' C'est la page destination
    For I = 0 To UBound(Dep)
      ' On copie à partir de la page "Carte de score"
      Range(Dep(I)).Copy
      .Cells(Lg, Cl + I).PasteSpecial Paste:=xlPasteValues
    Next I
  End With
  Application.CutCopyMode = False
End Sub

Ah ok je ne pensais pas du tout à quelques lignes pour mes 35 valeurs, je comprends mieux ton raisonnement.

(D'où les questions sur la provenance et la destination des valeurs)

Je me penche dessus !

Merci beaucoup !

Rechercher des sujets similaires à "vba copier coller valeurs select"