Simplifier un code copier/coller

guivrator Messages postés 11 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 17 avril 2009 - 7 juil. 2008 à 13:18
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 8 juil. 2008 à 16:00
bonjour a tous

J'ai un programme qui doit (entre autre) copier environ une dizaine de données pour les transposer dans un autre fichier (copier/coller)

Mais le code est très long et très moche

Copie des valeurs dans la fiche de résumé
Windows("fichier capabilité").Activate
Range("Date").Copy
Windows("fiche de résumé capabilité" & " " & numerosuivi & ".xls").Activate
Range("date").Select
ActiveSheet.Paste
Windows("fichier capabilité").Activate
Range("Atelier").Copy
Windows("fiche de résumé capabilité" & " " & numerosuivi & ".xls").Activate
Range("Atelier").Select
Selection.PasteSpecial Paste:=xlPasteValues
Windows("fichier capabilité").Activate
Range("Ilot").Copy
Windows("fiche de résumé capabilité" & " " & numerosuivi & ".xls").Activate
Range("Ilot").Select
Selection.PasteSpecial Paste:=xlPasteValues

y'a-t-il un moyen de simplifier le code?


 


L'idéal serait une fonction copy(Date, Atelier, Ilot ...) et Paste(Date, Atelier, Ilot ...)


Petite précision : les cases sont nommés de la même manière entre les 2 ficheirs mais ne sont pas positionnée pareil


 


Merci


Thomas

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juil. 2008 à 15:50
salut,

pas testé, mais doit pas pas être loin :

With Windows("fiche de résumé capabilité" & " " & numerosuivi & ".xls")
    .Range("date").Value = Windows("fichier
capabilité").Range("Date").Value
    .Range("date").Value = Windows("fichier
capabilité").Range("Date").Value
    .Range("date").Value = Windows("fichier
capabilité").Range("Date").Value
End With
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
guivrator Messages postés 11 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 17 avril 2009
8 juil. 2008 à 08:44
désole j'ai pas testé j'ai trouvé une technique un peu moins barbare

j'ouvre le fichier source
a = range("date"). value
b =range("ilot"). value
...
ensuite j'ouvre le fichier destination
range("date").value = a
range("ilot").value = b
...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 juil. 2008 à 16:00
salut,

Barbare ?
Humm c'est un point de vue. Ce que je vois surtout c'est que mon code évite tes deux variables a et b (pour faire la même chose)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous