Utiliser deux plages nommées

Le
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:=xlFillD=
efault
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:=xlFillDefau=
lt

Comment résoudre cette difficulté ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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