Différencier deux plages nommées par un seul caractère

  • Initiateur de la discussion Initiateur de la discussion apt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

apt

XLDnaute Impliqué
Bonsoir à tous,

Dans un classeur, j'ai défini deux plages nommée.

bEntréesS, dans l'onglet "B"

mEntréeS, dans l'onglet "M"

Pour utiliser, l'une ou l'autre plage, j'ai codé :

Code:
With ActiveSheet
    x = .Name
    .Range("E4").Formula = "=SUMPRODUCT((sRéférence=$A4)*(sEtat=""x"")*(sMouvement=""Sortie"")*(sQuantité))"
    .Range("F4").AutoFill Destination:=[x & "EntréeS"], Type:=xlFillDefault
End With

Mais voila, ça me déclenche une erreur :

Erreur d'exécution '1004':

La méthode AutoFill de la classe a échoué.

Sur la ligne suivante :

Code:
.Range("F4").AutoFill Destination:=[x & "EntréeS"], Type:=xlFillDefault

Comment résoudre cette difficulté ?

Merci.
 
Re : Différencier deux plages nommées par un seul caractère

Bonsoir.
Vous ne pouvez mettrez que des littéraux constants entre crochet. Pour des expressions à évaluer il faut Application.Evaluate
Cela dit vous pourriez prendre exactement les mêmes noms mais définis aux niveau des feuilles et non du classeur.
Ils seraient alors tout de même également connus au niveau du classeur à condition de les préfixer du nom de la feuille suivie d'un "!".
Cordialement
 
Re : Différencier deux plages nommées par un seul caractère

Pourquoi ne faites vous pas tout simplement:
VB:
.Range(x & "StockDispoS").FormulaR1C1 = "=RC3+RC4-RC5"
Le AutoFill n'est jamais nécessaire dans les macros: on peut directement mettre la même formule à toutes les cellules d'une plage.
Ça marche aussi en notation A1 mais c'est mieux en R1C1: on ne risque pas de se tromper sur le numéro de la 1ère ligne puisqu'on n'a pas besoin de l'indiquer. Et puis je trouve qu'on voit bien, comme ça, que c'est vraiment exactement la même formule à toute les lignes, même si en notation A1 ça se retrouve avec le numéro différent de chaque ligne sans "$" devant.
Cordialement.
 
Dernière édition:
Re : Différencier deux plages nommées par un seul caractère

Bonsoir apt,
Bonsoir Dranreb,

Il faut utiliser Range. Pas de guillemets entre crochets.
De plus, il y a un conflit entre ta Destination et le Range F4. bEntreeS est en D4 ...
Code:
.Range("F4").AutoFill Destination:=Range(x & "EntréeS"), Type:=xlFillDefault

Idem pour le reste ...
 
Re : Différencier deux plages nommées par un seul caractère

Bonsoir Dranreb, Gareth,

Ca marche bien la solution avec
Code:
Range(x & "EntréeS")

Mais j'ai un problème dans les colonnes H et I :

En H, le problème de date

En I :

Code:
'-- Derniere colonne
.Range("I4").Formula = "=IF(x & StockMiniS="""","""",IF(x & StockDispoS < x & StockMiniS,""Attention: Stock bas"",""RAS""))"

Dans la barre de formule j'obtiens :

Code:
=SI(x & StockMiniS="";"";SI(x & StockDispoS < x & StockMiniS;"Attention: Stock bas";"RAS"))

Pour la notation en R1C1, il faut que je travaille dessus pour mieux la maitriser 🙂
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
951
Retour