Accélérer: VBA copier/coller

  • Initiateur de la discussion Initiateur de la discussion titine06
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

titine06

Guest
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
 
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 😡...
Bonne soirée 😎
 
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
 
Re : Accélérer: VBA copier/coller

Bonjour Kjin,

Super code, merci beaucoup !! Juste une chose, j'aimerai que le copier soit uniquement en valeur. Comment dois je adapter ton code ?

MErcii !!

Titine
 
Dernière modification par un modérateur:
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Réponses
18
Affichages
597
Réponses
2
Affichages
399
Retour