XL 2016 Ajouter une formule à une ligne lors d'un transfert entre deux onglets

Al1_44

XLDnaute Junior
Bonjour à tous,

Je cherche à ajouter une formule (une simple soustraction entre deux dates) à une ligne transférée de la Feuil1 à la Feuil2 via un double clic sur une cellule de la colonne I.
La ligne de code : WsDst.Range("V" & DerligDst).Formula = "="A" & DerligDst-"H" & DerligDst" me renvoie une erreur.

Cordialement,
AL1_44
 

Pièces jointes

  • Archivage V1.xlsm
    27.9 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
DerligDst est une variable. Il faut donc la rajouter dans la chaine en la concaténant avec le reste, ce que fait l'opérateur &.
Par exemple DerligDst" n'est pas compris par le VBA, il faut obligatoirement rajouter un & pour lui faire comprendre qu'il concatène deux chaines, sinon il va essayer d'interpréter DerligDst" comme étant une variable.
 

Al1_44

XLDnaute Junior
Bonjour Sylvanu,

Cela fonctionne pour cette opération, mais si je passe à une formule plus élaborée comme un calul de jours ouvés entre la cellule A et de a cellule H de la dernière ligne archivée, je bloque sur la syntaxe.
WsDst.Range("V" & DerligDst).Formula =NB.JOURS.OUVRES(A" & DerligDst &";H" & DerligDst" ;)

Cordialement,
AL1_44
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
1- La syntaxe pour insérer une formule est :
VB:
Range("A1").Formula = "= Formule"
a- Si on a Formula simplement alors la formule doit être en anglais qui est la langue native du VBA.
b- Si on veut la formule en français alors il faut faire .FormulaLocal

Donc :
WsDst.Range("V" & DerligDst).Formula =NB.JOURS.OUVRES(A" & DerligDst &";H" & DerligDst"
1- Il faut mettre FormulaLocal puisque vous utilisez une formule en français
2- Il manque un double égal. Le premier pour l'affectation de la formule à la cellule, le second pour le = de formule, les deux séparer par ", donc FormulaLocal="=
3- Il manque la fermeture de la formule par parenthèse, donc doit se terminer par & ")"
Cela donne donc :
Code:
WsDst.Range("V" & DerligDst).FormulaLocal = "=NB.JOURS.OUVRES(A" & DerligDst & ";H" & DerligDst & ")"
Voir :
 

Al1_44

XLDnaute Junior
Merci pour l'explication,

1- Il faut que j'utilise les termes adéquats pour avoir le résultat attendu.
2- Quand on met une parenthèse ( ne pas oublier de finir avec une ).
3- Et à l'école, on me le disait souvent : "relis-toi! "

Merci pour le supplément, je l'ai lu mais je n'ai pas tout saisi. Je vais faire comme à l'école, faire des exercices pour comprendre et assimiler.

AL1_44
 

Discussions similaires

Statistiques des forums

Discussions
312 241
Messages
2 086 526
Membres
103 242
dernier inscrit
Patoshick