Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Amélioration d'une macro VBA Excel

corate92

XLDnaute Junior
Bonjour le forum!

J'ai voulu faire une macro me permettant de copier sur un fichier 1 une valeur (obtenue grâce à une fonction), et de coller cette même valeur dans un fichier 2.

Jusqu'ici pas de problème...

Grâce à notre fameux enregistreur de macro avec un collage spécial, j'obtiens le code suivant:

Code:
Sub copie()
'
'  Macro enregistrée le 28/04/2008
'
    Range("F3").Select
    Selection.Copy
    Windows("Fichier 2").Activate
    Worksheets("Feuille 1").Activate
    Range("A65536").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
End Sub


J'aimerais améliorer ma macro, afin d'éviter les "activate"....
Surtout que j'ai plusieurs cellules à copier à chaque fois avec un collage spécial, donc si cela pouvait accélérer l'éxécution de la macro, ça serait pas plus mal....

Qu'en pensez vous?

Merci à tous ceux qui contribuent à ce site... qui est vraiment une perle (surtout pour les novices en VBA comme moi )

Bonne journée!
 

job75

XLDnaute Barbatruc
Re : Amélioration d'une macro VBA Excel

Bonjour,
Essayez :
Code:
Sub copie()
[F3].Copy
Workbooks("Fichier 2").Sheets("Feuille 1").Range("A65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues    
End Sub
A+
 

corate92

XLDnaute Junior
Re : Amélioration d'une macro VBA Excel

Hello Job75!

Merci bcp pour ta piste, toutefois ton code en l'état ne fonctionnait pas!
j'ai fait 1 petite modification


Code:
Sub copie()
Range("F3").Copy
Workbooks("Fichier 2").Sheets("Feuille 1").Range("A65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues    
End Sub

et ça fonctionne!

Merci bcp!
 

job75

XLDnaute Barbatruc
Re : Amélioration d'une macro VBA Excel

Re
Il serait peut-être plus simple d'entrer directement la valeur de F3 dans la cellule concernée plutôt que Copier/Coller :
Code:
Sub entrer()
Workbooks("Fichier 2").Sheets("Feuille 1").Range("A65536").End(xlUp).Offset(1).Value = Range("F3").Value
End Sub
A+
 

Discussions similaires

Réponses
7
Affichages
327
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…