Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA : Nom Dynamique (bis) : erreur dans la formule

0 views
Skip to first unread message

Papou

unread,
Jun 16, 2003, 8:39:05 AM6/16/03
to
Bonjour à toutes et à tous
Je reviens vers vous suite à ma question posée le 11/06 à 15H10 concernant
un problème de définition de nom dynamique.
AV m'avait aiguillé sur une piste que j'ai suivie (RefersTo au lieu de
RefersToR1C1 ou RefersToLocal), la création du nom ayant réussi, je pensais
avoir réglé mon problème (d'autant plus que je l'ai testé plusieurs fois).
Hors voilà qu'aujourd'hui j'ai la même erreur qui revient sur mon poste en
Xl2000 (SP3).
J'avoue ne pas voir où peut se situer l'erreur.
Je ne parviens pas à reproduire cette erreur sur un Excel XP !
Le code est à l'intérieur d'une procédure publique appelée à partir d'un
contrôle (CommandButton) situé sur un UserForm
Il n'y a aucun code liée à la feuille
Les variables qui ne sont pas déclarées dans le code ci-dessous, sont
déclarées publiques dans un module Declarations

Voici donc le code qui devrait me permettre de définir un nom dynamique et
qui plante systématiquement avec une erreur 1004 "La formule que vous tapez
n'est pas valide, etc." :
LaRefAdr = Sheets("MaterielEtMarques").[A1].End(xlToRight).Address(False,
False)
NouvelleMarque = "Marques" &
Left(Sheets("MaterielEtMarques").[A1].End(xlDown).Value, 3)
Dim Ref1
Ref1 = Sheets("MaterielEtMarques").Range(LaRefAdr).Offset(1, 0).Address
'2 ème ref
Dim Ref2
Ref2 = Sheets("MaterielEtMarques").Range(Ref1).EntireColumn.Address
Dim LaFormule
LaFormule = "=OFFSET(MaterielEtMarques!" & Ref1 &
",,,COUNTA(MaterielEtMarques!" & Ref2 & ")-1)"
ThisWorkbook.Names.Add Name:=NouvelleMarque, RefersTo:=LaFormule

Merci d'avance pour vos idées
Cordialement
Pascal

michdenis

unread,
Jun 16, 2003, 3:49:33 PM6/16/03
to
Bonjour Papou,

Voici un exemple simple quant à la manière de définir un nom d'une plage de cellules :

La plage nommée "toto" = première cellule de la colonne A à la dernière cellule de la colonne A occupée.

'-------------------------------
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "toto"
End With
'-------------------------------


Et si tu veux que la plage nommée se mette à jour à chaque ajout dans la colonne, tu utilises l'événement

'----------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
'----------------


Je n'ai pas essayé de lire ton code... mais il me semble qu'il doit y avoir plus simple pour indiquer une plage nommée.
Comme tu es en vba, il n'est pas certain que la méthode "Decaler()" soit nécessaire.!


Salutations!


"Papou" <no_spam_@probin@tibco.fr> a écrit dans le message de news:%23COTIRA...@TK2MSFTNGP09.phx.gbl...

AV

unread,
Jun 17, 2003, 1:03:25 AM6/17/03
to
Ave Papou,

Pas testé ton code car je veux pas me tarter le classeur à reconstituer ;-)
M'est avis que le blème vient de la définition des variables réf1 et réf2 ....?
Est-ce que elles incluent bien le nom de la feuille avec les réf de cellules ?
Qque chose de ce style :

réf1 = "Feuil1!$A$1"
réf2 = "Feuil1!$A:$A"
ActiveWorkbook.Names.Add Name:="fifi", RefersTo:= _
"=OFFSET(" & réf1 & ",,,COUNTA(" & réf2 & ")-1)"

Par contre, je comprends pas le fonctionnement aléatoire selon les versions XL
(j'ai pas XP pour tester)

AV


Papou

unread,
Jun 17, 2003, 4:17:55 AM6/17/03
to
Bonjour Av
Merci pour ton aide.
Je vais cependant laisser tomber cette façon de procéder puisqu'elle ne
semble pas fonctionner correctement avec VBA en tout cas.
Je vais plutôt opter pour l'option de Michel qui me semble beaucoup plus
fiable.
Merci encore
Cordialement
Pascal

"AV" <alain....@wanadoo.fr> a écrit dans le message de news:
#zjr72IN...@TK2MSFTNGP11.phx.gbl...

Papou

unread,
Jun 17, 2003, 4:19:46 AM6/17/03
to
Bonjour Michel
Je te remercie pour ton conseil que je vais m'empresser de suivre (je ne
parviens que de manière très aléatoire à obtenir le résultat voulu, je
laisse donc tomber cette méthode avec VBA)
Encore merci
Cordialement
Pascal

"michdenis" <mich...@hotmail.com> a écrit dans le message de news:
eMpDqBEN...@TK2MSFTNGP10.phx.gbl...

0 new messages