Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

transfert d'information entre classeur

chris_tls

XLDnaute Nouveau
Bonjour à tous,

Mon but est de créer un code qui permettra à une cellule de reprendre les information d'une autre contenu dans un classeur différent confused:je ne sais pas si je me fais comprendre mais bon...).

J'ai réussi pour une cellule, mais la seconde nécessite un "SI" et apparemment je n'arrive pas à saisir un code adéquat.

Le code qui marche :
Code:
ThisWorkbook.Sheets("PARAM").Range("P_NomClient").Value = "='[Sommaire.xls]Sommaire'!$D$3"

Le code qui ne marche pas :
Code:
ThisWorkbook.Sheets("PARAM").Range("P_Exercice").FormulaR1C1 = "=SI('[Sommaire DA.xls]Sommaire'!$E$5;'[Sommaire DA.xls]Sommaire'!$E$5;"")"

J'ai d'abord mis ces opération dans les cellules, mais les gens qui utiliserons ce fichier vont copier tout le dossier et la cellule s'adapte alors au fichier auquel excel croit qu'il doit rester rattacher confused:là non plus je ne sais pas si je me fais bien comprendre).

En tout cas si quelqu'un peut m'aider j'en serais soulagé
 

tototiti2008

XLDnaute Barbatruc
Re : transfert d'information entre classeur

Bonjour chris_tls,

à tester :

Code:
ThisWorkbook.Sheets("PARAM").Range("P_Exercice").FormulaR1C1 = "=IF('[Sommaire DA.xls]Sommaire'!R5C5,'[Sommaire DA.xls]Sommaire'!R5C5,"""")"
 

chris_tls

XLDnaute Nouveau
Re : transfert d'information entre classeur

Et bien les réponse les plus brèves sont parfois les meilleures, je te remercie cela fonctionne parfaitement et tu me sauve, bien que je n'ai pas vraiment compris la ligne (je suis stagiaire).
 

tototiti2008

XLDnaute Barbatruc
Re : transfert d'information entre classeur

Re,

quelques explications :

FormulaR1C1 attend une formule en anglais (nom des fonctions anglaises), avec des séparateurs virgules et des adresses de cellules au format R1C1 (Row 1, Column 1)

par exemple

$A$1 s'écrit R1C1

si les références sont relatives (sans $), ça se complique un peu. tout dépend de l'endroit où tu ecris ta formule.

par exemple, si en B1 tu veux mettre "=A1", ça s'écrira :
=RC[-1]
ce qui signifie : sur la même ligne et une colonne avant..

maintenant, tu aurais pu faire :

Code:
ThisWorkbook.Sheets("PARAM").Range("P_Exercice").FormulaLocal = "=SI('[Sommaire DA.xls]Sommaire'!$E$5;'[Sommaire DA.xls]Sommaire'!$E$5;"""")"

FormulaLocal accepte les fonctions françaises, mais ton code risque de ne fonctionner que sur des Excel français....
 

Discussions similaires

Réponses
7
Affichages
614
Réponses
6
Affichages
829
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…