Utiliser deux plages nommées

Le
Apitos
Bonsoir tous,

Dans un classeur, j'ai dfini deux plages nomme.

bEntresS, dans l'onglet "B"

mEntreS, dans l'onglet "M"

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

'-
With ActiveSheet
x = .Name
.Range("E4").Formula = "=SUMPRODUCT((sRfrence=$A4)*(sEtat=
=""x"")*(sMouvement=""Sortie"")*(sQuantit))"
.Range("F4").AutoFill Destination:=[x & "EntreS"], Type:=xlFillD=
efault
End With
'--

Mais voila, a me dclenche une erreur :

Erreur d'excution '1004':

La mthode AutoFill de la classe a chou.

Sur la ligne suivante :

.Range("F4").AutoFill Destination:=[x & "EntreS"], Type:=xlFillDefau=
lt

Comment rsoudre cette difficult ?

Merci.
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #24883132
Bonjour,

A prioiri sans vérifier le reste ceci saute aux yeux:

x=lcase(.Name)

BEntréeS ou bEntréesS ... majuscule minuscule et S ou sS,
mais pour les s l'erreur n'est sans doute que dans la transcription du post
Pour la casse,donc si minuscule dans le nomde plage, attention on a en Maj
celui de la feuille

x=lcase(.Name)

--
lSteph


"Apitos" news:
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é :

'-------------
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 :

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

Comment résoudre cette difficulté ?

Merci.
Jacky
Le #24886922
Bonjour,
Essaie ceci

Remplace .Range("F4").AutoFill Destination:=[x & "EntréeS"], Type:=xlFillDefault
par
Evaluate(x & "EntréeS").Copy [f4]

--
Salutations
JJ


"Apitos"
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é :

'-------------
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 :

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

Comment résoudre cette difficulté ?

Merci.
Jacky
Le #24886902
Humm !
Sans oublier le point devant [f4]
Evaluate(x & "EntréeS").Copy .[f4]

--
Salutations
JJ


"Jacky"
Bonjour,
Essaie ceci

Remplace .Range("F4").AutoFill Destination:=[x & "EntréeS"], Type:=xlFillDefault
par
Evaluate(x & "EntréeS").Copy [f4]

--
Salutations
JJ


"Apitos"
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é :

'-------------
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 :

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

Comment résoudre cette difficulté ?

Merci.



Apitos
Le #24886852
Bonsoir LSteph, Jacky,

Oui Stéphane, il faut rendre en minuscule les lettres "B" et "M".

Pour Jacky, si par exemple la plage [bEntréesS] est égale à D4:D6, la ligne :

Evaluate(x & "EntréeS").Copy .[D4]

Ne copie la formule en [D4] que pour D4:D5 et laisse la dernière cellule de la plage nommée, à savoir [D6] vide !
Jacky
Le #24886842
Re...
...laisse la dernière cellule de la plage nommée, à savoir [D6] vide !


Bien qu'un range serait suffisant
Range(x & "EntréeS").Copy .[D4]
Je n'éprouve aucune difficulté pour afficher la plage complète
Ceci, (x & "EntréeS) étant le nom de la plage, je ne vois pas comment la dernière cellule serait tronquée.
A voir.....
--
Salutations
JJ


"Apitos"
Bonsoir LSteph, Jacky,

Oui Stéphane, il faut rendre en minuscule les lettres "B" et "M".

Pour Jacky, si par exemple la plage [bEntréesS] est égale à D4:D6, la ligne :

Evaluate(x & "EntréeS").Copy .[D4]

Ne copie la formule en [D4] que pour D4:D5 et laisse la dernière cellule de la plage nommée, à savoir [D6]
vide !
Jacky
Le #24886832
Pour vérifier place ceci dans la macro
MsgBox Range(x & "EntréeS").Address

--
Salutations
JJ


"Jacky"
Re...
...laisse la dernière cellule de la plage nommée, à savoir [D6] vide !


Bien qu'un range serait suffisant
Range(x & "EntréeS").Copy .[D4]
Je n'éprouve aucune difficulté pour afficher la plage complète
Ceci, (x & "EntréeS) étant le nom de la plage, je ne vois pas comment la dernière cellule serait tronquée.
A voir.....
--
Salutations
JJ


"Apitos"
Bonsoir LSteph, Jacky,

Oui Stéphane, il faut rendre en minuscule les lettres "B" et "M".

Pour Jacky, si par exemple la plage [bEntréesS] est égale à D4:D6, la ligne :

Evaluate(x & "EntréeS").Copy .[D4]

Ne copie la formule en [D4] que pour D4:D5 et laisse la dernière cellule de la plage nommée, à savoir [D6]
vide !

Apitos
Le #24886822
Re,

Les plages nommées vont bien de la ligne 4 jusqu'à la ligne 6.

Mais pourquoi les formules ne sont pas copiées jusqu'à la dernière li gne, ça c'est la question ?

En PJ un exemple complet :

http://cjoint.com/?BJtu5e5wCXN
Jacky
Le #24886802
re..
...ça c'est la question ?

Il y a certainement quelque chose qui m'échappe
?????
"-------------
With Sheets("M")
sDerLig = .Range("A" & Rows.Count).End(xlUp).Row

.Range("D4:D" & sDerLig).Name = "mEntréeS"
'---------------
La plage nommée fait référence à "M!$D$4:$D$6"
La plage "d4:d6" de la feuille "M" est vide
La copie doit copier une plage et la coller au même endroit ?????
?????
--
Salutations
JJ


"Apitos"
Re,

Les plages nommées vont bien de la ligne 4 jusqu'à la ligne 6.

Mais pourquoi les formules ne sont pas copiées jusqu'à la dernière ligne, ça c'est la question ?

En PJ un exemple complet :

http://cjoint.com/?BJtu5e5wCXN
Jacky
Le #24886792
Ok
Oublie le message précédant
J'ai étudié ton code d'un peu plus près
Remplace ceci
.Range("D4").Formula = "=SUMPRODUCT((sRéférence=$A4)*(sEtat=""" & Nom &
""")*(sMouvement=""Entrée"")*(sQuantité))"
Par
.Range(x & "EntréeS").Formula = "=SUMPRODUCT((sRéférence=$A4)*(sEtat=""" & Nom &
""")*(sMouvement=""Entrée"")*(sQuantité))"

Idem pour les autres...en dessous

--
Salutations
JJ


"Apitos"
Re,

Les plages nommées vont bien de la ligne 4 jusqu'à la ligne 6.

Mais pourquoi les formules ne sont pas copiées jusqu'à la dernière ligne, ça c'est la question ?

En PJ un exemple complet :

http://cjoint.com/?BJtu5e5wCXN
Jacky
Le #24886782
Re...
Evaluate(x & "EntréeS").Copy .[D4]
est a supprimer, bien évidement
Mais cela tu le sais certainement
--
Salutations
JJ


"Jacky"
Ok
Oublie le message précédant
J'ai étudié ton code d'un peu plus près
Remplace ceci
.Range("D4").Formula = "=SUMPRODUCT((sRéférence=$A4)*(sEtat=""" & Nom &
""")*(sMouvement=""Entrée"")*(sQuantité))"
Par
.Range(x & "EntréeS").Formula = "=SUMPRODUCT((sRéférence=$A4)*(sEtat=""" & Nom &
""")*(sMouvement=""Entrée"")*(sQuantité))"

Idem pour les autres...en dessous

--
Salutations
JJ


"Apitos"
Re,

Les plages nommées vont bien de la ligne 4 jusqu'à la ligne 6.

Mais pourquoi les formules ne sont pas copiées jusqu'à la dernière ligne, ça c'est la question ?

En PJ un exemple complet :

http://cjoint.com/?BJtu5e5wCXN

Publicité
Poster une réponse
Anonyme