Simplifier un code res=

Résolu/Fermé
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 - 18 juil. 2018 à 22:50
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 19 juil. 2018 à 10:10
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 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
19 juil. 2018 à 09:01
bonjour, je pense que tu as quelque part du code
function CopierColler( ... )
...
end function

peux-tu partager ce code?
0
CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023 1
19 juil. 2018 à 09:35
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 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > CHARLYJACK Messages postés 353 Date d'inscription mardi 19 octobre 2010 Statut Membre Dernière intervention 16 mai 2023
19 juil. 2018 à 10:10
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