Besoin d'aide !

  • Initiateur de la discussion Jérémie
  • Date de début
J

Jérémie

Guest
Salut a tous !

Voila, je dois créer pour une entreprise un devis informatisé avec données injectables dans une GPAO. Le problème est que ce fichier va comporter parfois plus de 80 feuilles. alors pour optimiser le poid du fichier, au lieu de créer un fichier avec 100 pages et pas une de plus ni de moins, je voudrais créer une macro qui me permet de dupliquer la première feuille et au fur et a mesure de leur création, le nom des feuilles vont s'incrémenter de la manière suivante: SE1,SE2,SE3,...
mais, il y a des contraintes techniques que je n'arrive pas a surmonter. Par exemple, je suis arrivé a la feuille SE4. Dans celle-ci il y a des formules qui font réferences a la feuille précedente. Lorsque j'execute ma macro, il me demande de mettre a jours le fichier parce qu'il ne reconnait pas la feuille appelé "nomfeuilprece". Normal! Parce que il aurait du s'appeler "SE3" !!Mon vrai problème est donc sur la syntaxe que doit avoir la variable appelé "nomfeuilpreced" faisant réference au nom de la feuille précedente.

Voici mon petit bout de code qui me fait défaut ( c'est vrai que les formules sont un peu compliquées mais elles sont bonnes, y a pas de soucie )


Sub formulese2(nombrefeuille As Integer)

Dim nbfeuil As Integer

nb = Format(nombrefeuille)------------------->Format, c'est pour convertir un entier en caractere !!!
nomfeuil = ("SE" + nb)
nbfeuil = nombrefeuille - 1
feuilpreced = Format(nbfeuil)
nomfeuilpreced = ("SE" + feuilpreced)
Sheets(nomfeuil).Select
Range("C23:E23").Select
ActiveCell.FormulaR1C1 = "=IF(RC[3]<>"""",IF(SUM(nomfeuilpreced!RC:R[56]C)<>0,MAX(nomfeuilpreced!RC:R[56]C)+10,""""),"""")"
Range("C30:E30").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[3]<>"""",SUM(R[-7]C:R[-1]C[2])<>0)=TRUE,MAX(R[-7]C:R[-1]C[2])+1,IF(AND(RC[3]<>"""",SUM(R[-7]C:R[-1]C[2])=0)=TRUE,MAX(nomfeuilpreced!R[-7]C:R[49]C)+10,""""))"


End Sub


Qui peu m'aider ? Merci beaucoup....
 
Z

Zon

Guest
Salut,

Il faut rajouter des " pour que ta variable nomfeuilpreced soit reconnue en tant que "SE4" et non "nomfeuilpreced".
Ex:

"=IF(RC[3]<>"""",IF(SUM(" & nomfeuilpreced & "!RC:R[56]C)<>0,MAX(" & nomfeuilpreced & "!RC:R[56]C)+10,""""),"""")"

Idem adapté pour la seconde formule.

Je pense que le Format(nombrefeuille) est inutile.

A+++

Ps : Le titre n'est pas trés explicite=> ex: Comment mettre une nom de variable dans une formule en VBA ?
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz