Simplifier un code res=

Résolu
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 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

1 réponse

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

    peux-tu partager ce code?
    0
    1. 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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 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