Simplifier un code res=

Résolu
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

1 réponse

  1. Contributeur
    bonjour, je pense que tu as quelque part du code
    function CopierColler( ... )
    ...
    end function

    peux-tu partager ce code?
    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
    2. Contributeur
      @CHARLYJACKmoi 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")