Accélérer: VBA copier/coller

titine06

XLDnaute Junior
Bonsoir,

J'utilise ce code énormément de fois à la suite:

Code:
    Windows("fusionééééééééééééééééé.xlsx").Activate
    Sheets("Feuil1").Select
    Range("E2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy

    Windows("Test.xls").Activate
    Sheets("Feuil2").Select    
    Range("H3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Et j'imagine que au lieu d'ouvrir une fenêtre/copier & ouvrir une autre fenêtre/coller , il y a un moyen plus "propre" de faire cette action, plus optimisée ?

Auriez-vous une idée?

merci d'avance


Titine
 

JNP

XLDnaute Barbatruc
Re : Accélérer: VBA copier/coller

Bonsoir Titine06 :),
Peut-être
Code:
Dim Cellule As Range, I As Integer
I = 0
With Workbooks("fusionééééééééééééééééé.xlsx").Sheets("Feuil1")
For Each Cellule In .Range("E2:E" & .Range("E2").End(xlDown).Row)
Workbooks("Test.xls").Sheets("Feuil2").Range("H3").Offset(I, 0) = Cellule.Value
I = I + 1
Next
End With
mais non testé, vu que pas de fichier test fourni :mad:...
Bonne soirée :cool:
 

kjin

XLDnaute Barbatruc
Re : Accélérer: VBA copier/coller

Bonsoir, salut JNP :),
Faut se soigner quand on éternue comme ça...
Code:
Dim c As Range
With Workbooks("fusionééééééééééééééééé.xlsx").Sheets("Feuil1")
Set c = .Range("E2:E" & .Range("E65000").End(xlUp).Row)
End With
c.Copy Workbooks("Test.xls").Sheets("Feuil2").Range("H3")
A+
kjin
 

Si...

XLDnaute Barbatruc
Re : Accélérer: VBA copier/coller

Salut

ne copie que les valeurs
Code:
   Dim tablo

  Windows("fusionééééééééééééééééé.xlsx").Activate
  With Sheets("Feuil1")
    tablo = .Range("E2", .Range("E65000").End(xlUp))
    Workbooks("Test.xls").Activate
    Sheets("Feuil2").Range("H3:H" & UBound(tablo) + 2) = tablo
  End With
 

titine06

XLDnaute Junior
Re : Accélérer: VBA copier/coller

Coucou,

merci pour ta solution, mais je vais rester sur celle de Kjin.

Je souhaite juste modifier:
Copy Workbooks("Test.xls").Sheets("Feuil2").Range("H3")

pour que ca copie uniquement les valeurs.


Merci d'avance !!

Titine
 

titine06

XLDnaute Junior
Re : Accélérer: VBA copier/coller

Bonsoir !!


Merci Jean-Marcel, ca marche très bien !

Mais je voudrais revenir sur le code de Kjin, car j'aime beaucoup l'idée de définir préalablement ce qui va être copié:

c.Copy Workbooks("Test.xls").Sheets("Feuil2").Range("H3")

J'aimerai savoir si il existe l'équivalent de ".Copy" qui copierait uniquement les valeurs. J'ai cherché sur le web mais je n'ai rien trouvé. J'ai essayé .Value et d'autre cobinaison mais rien ne passe...


Merci d'avance

Bonne soirée

Titine
 

Discussions similaires

Réponses
2
Affichages
151

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz