Inserer valeur d'une cellule dans macro

charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011 - 16 mai 2011 à 16:14
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011 - 19 mai 2011 à 10:34
Bonjour à toutes et tous,

est-il possible dans ce bout de code:

"='[fiche perso template.xls](feuil2)'!R2C5"


de remplacer "template" par le n°de la cellule dans laquelle il se trouve.
Et si oui, pouvez-vous m'aider pour la syntaxe.

Petite explication, ce bout de code est donc "l'adresse" pour une liaison, adresse susceptible de changer. Et c'est donc le terme "template" qui sera changé à fait que l'on dupliquera le classeur et la valeur de la cellule sera donc automatiquement modifiée.

merci

cordialement

Thierry

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 mai 2011 à 19:12
Salut

Qu'appelles-tu le "n° de la cellule" ?
Genre R1C1 ou A1 ?

Ce que tu nous montres est le contenu d'une FormulaRC1 mais n'est autre que tu texte. Il suffit donc de travailler le texte.

Il faut découper ce que tu as à faire :
- Trouver l'emplacement du mot "template" dans ta chaine -> Instr
- Prendre le côté gauche (Left$), concaténer (&) le nom de la cellule, concaténer la partie droite restante (Right$ ou Mid$)
- Faire une boucle de scrutation de lignes, semble t-il (pas clair)
http://www.vbfrance.com/forum/sujet-MACRO-EXTRAIRE-DANS-FICHIER-PUIS-ENVOI-MAIL-SUR_1521514.aspx
- Récupérer la ligne et la colonne de la cellule -> .Row et .Column

Toutes ces tâches sont simples et facile à mettre en place. Je te laisse œuvrer.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011
16 mai 2011 à 19:56
salut Jack,

template se trouve en cellule en cellule Q1, soit, et tu le sais mieux que moi,R1C17.
Désolé, mais je ne comprend pas très bien ton explication (j'suis novice hein), j'aimerais savoir si je peux remplacer "template" par quelque chose dans le genre: "R1C17.value" ou peut-etre "range(Q1).value"

j'espere que cette explication te sera utile

cordialement
Thierry
0
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011
17 mai 2011 à 23:30
bonsoir,
voilà je recommence avec un autre exemple
voici mon bout de code de départ, j'aimerai donc changer le "2011" par la valeur d'une cellule (A10 pour l'exemple)

ActiveCell.FormulaR1C1 = "='[test onglets0 2011.xls]Récapitulatif'!R1C5"




Voici ce que j'ai fait suivant des informations glanées ici et là:

ActiveCell.FormulaR1C1 = "='[test onglets0 & !R10C1 & .xls]Récapitulatif'!R1C5"


à l'activation, ça ne bug pas, mais ça m'ouvre la page de mise à jour des liens. Il semblerais donc, qu'il ne trouve pas son chemin. De plus quand je lui "indique" le chemin du classeur via la page précitée, il ne me demande pas quel feuille du classeur (donc il lit bien "récapitulatif) mais me note 0 au lieu de la valeur de R10C1 (bien que dans le bandeau des fonctions, la cellule R10C1 est renseignée sous la forme ("A10") qui est la bonne cellule)

pouvez-vous m'aider

merci

cordialement
Thierry
0
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011
19 mai 2011 à 01:21
bonsoir, je relance le sujet avec des explications (enfin je l'espere) plus claires

j'aimerais "traduire" cette liaison crée par "fonction" excel
='[test onglets0 2011.xls]Récapitulatif'!$D$1 --->fonction tapée dans la cellule E1
en langage macro.
Pourquoi? une partie de l'adresse (2011 en l’occurrence)et le nom de la feuille (ici Récapitulatif) sont susceptibles de changer, et qu'il n'est pas possible par le biais de la fonction de nommer la feuille par Feuil1.Name et encore moins de remplacer le "2011" par la valeur d'une cellule.

La valeur susceptible de remplacer "2011" se trouve en cellule A10 ou R10C1
Nous prendrons pour le test la Feuil1.Name comme reference en lieu et place de "Récapitulatif"

Première macro testée (avec succés)
Range("E1") = "='[test onglets0 2011.xls]Récapitulatif'!R1C5"

Macro qui ne m'intresse pas pour les raisons citées plus haut.

Après plusieurs tentatives infructueuses, je suis arrivés à ceci:

Dim Fichier As String
    Fichier = "test onglets0" & " " & Cells(10, 1).Value & ".xls"
    Range("E1") = Fichier & " " & " " & Feuil1.Name & " " & Cells(1, 1).Value



Avec ce code, j'ai dans la cellule E1
-le nom exact du fichier
-le nom de la feuil1 de la feuille active
......(alors que c'est la Feuil1 de "test onglets0" & " " & Cells(10, 1).Value & ".xls" que j'aimerais avoir)
-la valeur de la cellule (Cells(1, 1)) de la feuille active
......(même remarque que la parenthèse ci dessus)
Donc en fait, je n'ai pas la liaison

Pouvez-vous m'aider

merci
cordialement
Thierry
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011
19 mai 2011 à 10:14
bonjour,

j'avance à petit pas, mais quand même besoin d'un petit coup de pouce
Aprés quelques recherches et un petite modification au code, j'arrive à ceci:

Dim Fichier As String
    Fichier = "test onglets0" & " " & Cells(10, 1).Value & ".xls"
    Range("E1") = "= Fichier & Feuil1.Name & Cells(1, 1)"


cette fois, quand j'active la macro, j'ai #valeur noté dans la cellule "E1" mais,
dans le bandeau des fonctions, la formule commence par un "=". Donc j'ai une liaison,
chose que je n'avais pas avant.

Pouvez vous m'aider sur la cause que je n'ai pas la valeur de la cellule A1 du fichier ""test onglets0" & " " & Cells(10, 1).Value & ".xls"?

merci
cordialement
Thierry
0
charette63 Messages postés 88 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 19 mai 2011
19 mai 2011 à 10:34
Désolé, je ne sais pas comment éditer mon post precedent.

Une petite erreur, ce n'est pas "#valeur", mais "#NOM?" qui est noté dans la cellule "E1"

sorry
0
Rejoignez-nous