Macro Excel: caracteres ajouté dans la formul

Farfa -  
 amigo -
Bonjour,

Voila je suis en train de faire un fichier excel pour l'évaluation des risques.
Le fichier est composé de plusieurs feuilles d'évaluation correspondant à chaque poste et une feuille bilan où les "valeurs" des risques pour chaque poste sont regroupées.

Dans la feuille bilan sur les lignes apparaissent les risques et sur les colonnes les postes avec en tête de colonne le nom de la feuille qui correspond au poste.

Voila le début de mon programme pour les premiers risques:

Dim variable As String
Dim Var As String
variable = ActiveCell.Text

ActiveCell.Offset(2, 0).Select
ActiveCell.FormulaR1C1 = "=' " & variable & " '! K23 "
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=' " & variable & " '! K26 "
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=' " & variable & " '! K31 "
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=' " & variable & " '! K36 "
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=' " & variable & " ' ! K41 "
......

Le principe de la macro:
Copier le contenu de la case sélectionnée initialement (qui est le nom d'une feuille)
Coller le nom de la feuille dans la formule qui va aller chercher le contenu de la cellule K23, K26 ... etc dans une feuille d'évaluation
Le soucis c'est que cette formule met d'office des guillemet autour du nom de ma cellule à copier: ='feuille1'!'K26'
Quelqu'un pourrait m'aider, m'expliquer comment ecrire ma formule pour éviter que ca me rajoute les guillemets qui me boisent tout ?

Merci :D
A voir également:

2 réponses

Cybèle
 
Pour faire plus simple, autant aller chercher la valeur dans les feuilles de ton fichier et donner ces valeurs aux cellule de ta feuille bilan.
for i=1 to 10 ' s'il y a 10 feuilles
sheets(i).select ' tu vas en feuille i
variable(i)=cells(11,23).value2 ' tu prends la valeur qui t'interesse même le nom de la feuille avec nomfeuil(i)=activecell.text par
exemple
next i

sheets("bilan").select ' tu vas dans ta feuille bilan
i=1 ' tu remet i à 1
for j=1 to 10 ' tu donneras les valeurs au 10 cellules les une en dessous des autres
cells(2,j).value2=variable(i) ' elle prennent les valeurs de ta variable
i=i+1 ' tu augment i pour la prochaine valeur
next j ' tu continue la boucle

Je n'ai pas ton programme alors les valeurs x,y des cellules sont sans doute fausse mais cela peut te donner une idée (même avec 255 feuilles ce sont des boucles très rapide)
0
amigo
 
Bonjour,

Si tu en as toujours besoin, voici coment ecrire ta formule

ActiveCell.Value = "=" & variable & "!k23"

Ne me demande pas pourqoi, mais sur Excel 2000 ça marche.

Salut.
0