Simplifier un code res=

Résolu
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour

j'ai hérité d un fichier avec plein de macros et je ne suis pas habitué de ce type de code.
Le principe consiste à récupérer des tableaux dans un autre classeur pour les coller dans un autre.

Le problème c'est qu'il faut ajouter des lignes régulièrement.
Je dois donc modifier ce type de ligne tout le temps et il y en a plein :

res = CopierColler(nom_1, nom_fichier, "Tdb Dde", "Tdb Essai", "C6", "R155", "A7")

Le tableau d'origine est défini par le C6 R155
je voulais savoir si avec ce type d’écriture je pouvais utiliser une plage nommée pour éviter de modifier à chaque et si oui comment ?

De cette manière je n'aurais plus qu'à modifier la cellule de destination puisque les tableaux grandissent à chaque modification.

Par avance merci de votre aide
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, je pense que tu as quelque part du code
function CopierColler( ... )
...
end function

peux-tu partager ce code?
0
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour

oui effectivement j'ai ça :

Function CopierColler(fic_origine As Variant, fic_dest As Variant, feuille_origine As Variant, feuille_dest As Variant, plages1 As Variant, plages2 As Variant, plages_dest As Variant)

Windows(fic_origine).Activate
Sheets(feuille_origine).Select
Range(plages1 & ":" & plages2).Select
Selection.Copy

Windows(fic_dest).Activate
Sheets(feuille_dest).Select
Range(plages_dest).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Function

et plein d'autres

par avance merci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
 
moi je ferais une seconde fonction:
Function CopierCollerPN(fic_origine As Variant, fic_dest As Variant, feuille_origine As Variant, feuille_dest As Variant, nomplage As string , plages_dest As Variant) 

Windows(fic_origine).Sheets(feuille_origine).Range(nomplage).Copy 

Windows(fic_dest).Sheets(feuille_dest).Range(plages_dest).PasteSpecial _
Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
False, Transpose:=False 

End Function

puis:
res = CopierCollerPN(nom_1, nom_fichier, "Tdb Dde", "Tdb Essai", "nomdelaplage", "A7")
0