Petit problème pour les pros du VBA.

cs_josias Messages postés 3 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 4 août 2004 - 3 août 2004 à 10:26
cs_josias Messages postés 3 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 4 août 2004 - 4 août 2004 à 15:29
Je suis actuellement stagiaire étudiant dans une entreprise du Val de marne et je dois develloper un devis en VBA.
Dans ce devis, je dois créer une macros capable de génerer une nouvelle feuille. Dans cette feuille, il y a des infos liées aux feuilles précedentes.
Ce que je ne sais pas faire c'est:
- écrire dans la feuille qui vient d'être créée une formule faisant réference à la feuille précedente. ( au fur et a mesure que les feuilles se créées, leurs noms doivent s'incrémenter de la manière suivante: SE1, SE2, SE3, SE4, ...

Voici mon code qui ne fonctionne pas ( il ne prend pas en compte le nom des feuilles commes je le désire ):

Sub formulese2(nombrefeuille As Integer)

Dim nbfeuil As Integer

nb = Format(nombrefeuille)
nomfeuil = ("SE" + nb)
nbfeuil = nombrefeuille - 1
feuilpreced = Format(nbfeuil)
nomfeuilpreced = Format("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,""""))"
Range("C37:E37").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[3]<>"""",SUM(R[-14]C:R[-1]C[2])<>0)=TRUE,MAX(R[-14]C:R[-1]C[2])+1,IF(AND(RC[3]<>"""",SUM(R[-14]C:R[-1]C[2])=0)=TRUE,MAX(nomfeuilpreced!R[-14]C:R[42]C)+10,""""))"
Range("C47:E47").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[15]<>"""",SUM(R[-24]C:R[-4]C)<>0)=TRUE,MAX(R[-24]C:R[-4]C)+1,IF(AND(RC[15]<>"""",SUM(R[-24]C:R[-4]C)=0)=TRUE,IF(SUM(nomfeuilpreced!R[-24]C:R[32]C)<>0,MAX(nomfeuilpreced!R[-24]C:R[32]C)+10,""""),""""))"
Range("C65:E65").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[3]<>"""",SUM(R[-42]C:R[-4]C)<>0)=TRUE,MAX(R[-42]C:R[-4]C)+1,IF(AND(RC[3]<>"""",SUM(R[-42]C:R[-4]C)=0)=TRUE,IF(SUM(nomfeuilpreced!R[-42]C:R[14]C)<>0,MAX(nomfeuilpreced!R[-42]C:R[14]C)+10,""""),""""))"

End Sub

- j'aile même problème avec la programmation de lienhypertexte qui prend en compte la feuille précedente....

8-) De l'aide SVP ! merci !

2 réponses

DocteurVB Messages postés 211 Date d'inscription lundi 19 août 2002 Statut Membre Dernière intervention 20 mai 2005
3 août 2004 à 11:43
à mon humble avis, y'a déja un pb au niveau des guillemets genre dans :

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


même moi je ne saisi pas bien qui est chaine de caractère et qui est variable de VB...
ou une astuces dans le genre pask'a mon avis le PC y comprend ou commence et s'arrêtes tes chaines et il se trompe et essaye d'interpréter des bout de truc qui sont en fait des formules Excel ou qqch dans le genre...

DocteurVB
0
cs_josias Messages postés 3 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 4 août 2004
4 août 2004 à 15:29
Tout d'abord merci pour ta réponse.
En fait le problème vient du fait que je voudrais que le nom de feuille soit une variable. Mais je ne sais pas comment écrire ça dans la formule. Quant je test le code, il me dit que la feuille "nomfeuilpreced" n'existe pas alors que ce dernier aurai du prendre le nom de la feuille precedente.
Est-ce que tu peux m'aider ?

8-) De l'aide SVP ! merci !
0
Rejoignez-nous