Bonjour,
Le problème vient du fait que tu as confondu une variable destination avec l'argument nommé destination de la méthode Copy
La bonne syntaxe est
Worksheets("bas de page devis").Range("a1:I12").Copy destination:=sh.Range("A" & Derlig + 1)
ou
Worksheets("bas de page devis").Range("a1:I12").Copy sh.Range("A" & Derlig + 1)
L'argument Destination est un argument facultatif
Quand une fonction ou une procédure Sub a un argument facultatif il y a deux manières de faire.
Dans le cas présent, c'est simple parce-qu'il n'y a qu'un seul argument mais dans le cas où il y en a plusieurs, l'utilisation de l'argument nommé est plus intéressant.
Exemple
J'écris une procédure qui contient un argument obligatoire et trois facultatifs
Public Sub SortTable(Table As Range, Optional lstCol As String, Optional sHeader As Byte = xlGuess, Optional Extend As Boolean = True)
Imaginons que je doive envoyer la valeur False à l'argument Extend
J'ai deux syntaxes possible
Soit
SortTable Range("A1"), , ,False
ou
SortTable Range("A1"), Extend:=False
Partager