Bonjour,
Dans une appli excel, j'ai besoin de créer une source de données externes
dans une feuille nommée "liaison Access".
Les données ainsi récupérées sont exploitées dans d'autres feuilles du même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux)
La zone contenant les données externes est donc nommé TABLIASSE.
Problème :
Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
Pourtant la portion de code me semble bon :
Worksheets("liaison access").Select
Cells.Select 'on sélectionne tout
Selection.ClearContents 'on efface le contenu
ActiveWorkbook.Names("TabLiasse").Delete ' on efface le nom TabLiasse
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ '2
"ODBC;DSN=MS Access Database;DBQ=" & Cdialog.Filename &
";DefaultDir=" & Cdialog.Filename), Array( _
";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")),
Destination:=Range("A1"))
.CommandText = Array( "SELECT R_Regroupement_par_rubrique_N.CodeRub,
etc, etc" _
)
.Name = "TabLiasse" 'Affectation du nom à la source de données :
Cordialement et merci d'avance
Fred Redonnet
http://www.ticegestion.com
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ticegestion
Bonjour, J'ai réussi à trouver une solution (peut être pas la meilleure) : Avant création de la source de données, je parcours la collection Names et dès que je rencontre TabLiasse, je supprime le nom : For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse" Then nom.Delete End If Next ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de la source de données au nom TabLiasse For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Then Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange Exit For End If Next J'avais essayé au départ de renommer le nom de la source de données mais en faisant ça, la source était supprimée et les mises à jour étaient impossibles. Cette solution permet de faire fonctionner mon appli (réalisation automatique des bilans, compte de résultat... de la liasse fiscale à partir d'une balance gérée sous Access) mais, à chaque recréation de la source de données, le nom de la source finit toujours pas un numéro qui s'incrémente (TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette incrémentation. Cordialement Fred Redonnet http://www.ticegestion.com
"ticegestion" a écrit dans le message de news:bn5vou$9q8$
Bonjour, Dans une appli excel, j'ai besoin de créer une source de données externes dans une feuille nommée "liaison Access". Les données ainsi récupérées sont exploitées dans d'autres feuilles du même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux) La zone contenant les données externes est donc nommé TABLIASSE. Problème : Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
Bonjour,
J'ai réussi à trouver une solution (peut être pas la meilleure) :
Avant création de la source de données, je parcours la collection Names et
dès que je rencontre TabLiasse, je supprime le nom :
For Each nom In ActiveWorkbook.Names
If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse" Then
nom.Delete
End If
Next
ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de la
source de données au nom TabLiasse
For Each nom In ActiveWorkbook.Names
If Mid(nom.Name, 18, 9) = "TabLiasse" Then
Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange
Exit For
End If
Next
J'avais essayé au départ de renommer le nom de la source de données mais en
faisant ça, la source était supprimée et les mises à jour étaient
impossibles.
Cette solution permet de faire fonctionner mon appli (réalisation
automatique des bilans, compte de résultat... de la liasse fiscale à partir
d'une balance gérée sous Access) mais, à chaque recréation de la source de
données, le nom de la source finit toujours pas un numéro qui s'incrémente
(TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette
incrémentation.
Cordialement
Fred Redonnet
http://www.ticegestion.com
"ticegestion" <web@ticegestion.com> a écrit dans le message de
news:bn5vou$9q8$1@news-reader1.wanadoo.fr...
Bonjour,
Dans une appli excel, j'ai besoin de créer une source de données externes
dans une feuille nommée "liaison Access".
Les données ainsi récupérées sont exploitées dans d'autres feuilles du
même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux)
La zone contenant les données externes est donc nommé TABLIASSE.
Problème :
Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme
la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
Bonjour, J'ai réussi à trouver une solution (peut être pas la meilleure) : Avant création de la source de données, je parcours la collection Names et dès que je rencontre TabLiasse, je supprime le nom : For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse" Then nom.Delete End If Next ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de la source de données au nom TabLiasse For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Then Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange Exit For End If Next J'avais essayé au départ de renommer le nom de la source de données mais en faisant ça, la source était supprimée et les mises à jour étaient impossibles. Cette solution permet de faire fonctionner mon appli (réalisation automatique des bilans, compte de résultat... de la liasse fiscale à partir d'une balance gérée sous Access) mais, à chaque recréation de la source de données, le nom de la source finit toujours pas un numéro qui s'incrémente (TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette incrémentation. Cordialement Fred Redonnet http://www.ticegestion.com
"ticegestion" a écrit dans le message de news:bn5vou$9q8$
Bonjour, Dans une appli excel, j'ai besoin de créer une source de données externes dans une feuille nommée "liaison Access". Les données ainsi récupérées sont exploitées dans d'autres feuilles du même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux) La zone contenant les données externes est donc nommé TABLIASSE. Problème : Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
Lydya
Bonsoir Fred,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc: With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse"
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de la supprimer pour la recréer à chaque importation des nouvelles données dans la feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent. (Les noms définis ainsi ne sont pas visibles dans la zone de nom ni avec la commande Edition / Atteindre, il faut retourner dans Insertion / Nom / Définir pour les voir).
Lydya
--- "ticegestion" a écrit dans le message de news:bn67su$go5$
Bonjour, J'ai réussi à trouver une solution (peut être pas la meilleure) : Avant création de la source de données, je parcours la collection Names et dès que je rencontre TabLiasse, je supprime le nom : For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse" Then
nom.Delete End If Next ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de la
source de données au nom TabLiasse For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Then Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange Exit For End If Next J'avais essayé au départ de renommer le nom de la source de données mais en
faisant ça, la source était supprimée et les mises à jour étaient impossibles. Cette solution permet de faire fonctionner mon appli (réalisation automatique des bilans, compte de résultat... de la liasse fiscale à partir
d'une balance gérée sous Access) mais, à chaque recréation de la source de données, le nom de la source finit toujours pas un numéro qui s'incrémente (TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette incrémentation. Cordialement Fred Redonnet http://www.ticegestion.com
"ticegestion" a écrit dans le message de news:bn5vou$9q8$
Bonjour, Dans une appli excel, j'ai besoin de créer une source de données externes
dans une feuille nommée "liaison Access". Les données ainsi récupérées sont exploitées dans d'autres feuilles du même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux) La zone contenant les données externes est donc nommé TABLIASSE. Problème : Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme
la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
Bonsoir Fred,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add...
...
End with
Ainsi:
ActiveSheet.UsedRange.Name = "TabLiasse"
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour
toutes, une fonction "dynamique" pour définir le nom de la plage des
données, ainsi, celle-ci est recalculée automatiquement et plus besoin de la
supprimer pour la recréer à chaque importation des nouvelles données dans la
feuille, par exemple :
Insertion / Nom / Définir (CTRL F3)
Nom: TabLiasse
Fait référence à :
ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1))
Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne
doivent donc pas contenir de cellules vides pour que le résultat soit
pertinent.
(Les noms définis ainsi ne sont pas visibles dans la zone de nom ni avec la
commande Edition / Atteindre, il faut retourner dans Insertion / Nom /
Définir pour les voir).
Lydya
---
"ticegestion" <web@ticegestion.com> a écrit dans le message de
news:bn67su$go5$1@news-reader1.wanadoo.fr...
Bonjour,
J'ai réussi à trouver une solution (peut être pas la meilleure) :
Avant création de la source de données, je parcours la collection Names et
dès que je rencontre TabLiasse, je supprime le nom :
For Each nom In ActiveWorkbook.Names
If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse"
Then
nom.Delete
End If
Next
ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de
la
source de données au nom TabLiasse
For Each nom In ActiveWorkbook.Names
If Mid(nom.Name, 18, 9) = "TabLiasse" Then
Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange
Exit For
End If
Next
J'avais essayé au départ de renommer le nom de la source de données mais
en
faisant ça, la source était supprimée et les mises à jour étaient
impossibles.
Cette solution permet de faire fonctionner mon appli (réalisation
automatique des bilans, compte de résultat... de la liasse fiscale à
partir
d'une balance gérée sous Access) mais, à chaque recréation de la source de
données, le nom de la source finit toujours pas un numéro qui s'incrémente
(TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette
incrémentation.
Cordialement
Fred Redonnet
http://www.ticegestion.com
"ticegestion" <web@ticegestion.com> a écrit dans le message de
news:bn5vou$9q8$1@news-reader1.wanadoo.fr...
Bonjour,
Dans une appli excel, j'ai besoin de créer une source de données
externes
dans une feuille nommée "liaison Access".
Les données ainsi récupérées sont exploitées dans d'autres feuilles du
même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux)
La zone contenant les données externes est donc nommé TABLIASSE.
Problème :
Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il
nomme
la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
As-tu essayé de déplacer l'instruction de définition du nom après le bloc: With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse"
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de la supprimer pour la recréer à chaque importation des nouvelles données dans la feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent. (Les noms définis ainsi ne sont pas visibles dans la zone de nom ni avec la commande Edition / Atteindre, il faut retourner dans Insertion / Nom / Définir pour les voir).
Lydya
--- "ticegestion" a écrit dans le message de news:bn67su$go5$
Bonjour, J'ai réussi à trouver une solution (peut être pas la meilleure) : Avant création de la source de données, je parcours la collection Names et dès que je rencontre TabLiasse, je supprime le nom : For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Or nom.Name = "TabLiasse" Then
nom.Delete End If Next ainsi un nom comme 'Liaison Access'!TabLiasse_17 sera repéré et effacé
Après création de la source de données, j'affecte la plage d'adresses de la
source de données au nom TabLiasse For Each nom In ActiveWorkbook.Names If Mid(nom.Name, 18, 9) = "TabLiasse" Then Names.Add Name:="TabLiasse", RefersTo:=nom.RefersToRange Exit For End If Next J'avais essayé au départ de renommer le nom de la source de données mais en
faisant ça, la source était supprimée et les mises à jour étaient impossibles. Cette solution permet de faire fonctionner mon appli (réalisation automatique des bilans, compte de résultat... de la liasse fiscale à partir
d'une balance gérée sous Access) mais, à chaque recréation de la source de données, le nom de la source finit toujours pas un numéro qui s'incrémente (TabLiasse_17, ..._18, ...) et j'aurais qd même bien voulu éviter cette incrémentation. Cordialement Fred Redonnet http://www.ticegestion.com
"ticegestion" a écrit dans le message de news:bn5vou$9q8$
Bonjour, Dans une appli excel, j'ai besoin de créer une source de données externes
dans une feuille nommée "liaison Access". Les données ainsi récupérées sont exploitées dans d'autres feuilles du même
classeur via la fonction RECHERCHEV(...;TABLIASSE;...;Faux) La zone contenant les données externes est donc nommé TABLIASSE. Problème : Quand j'exécute la macro, Excel ne reprend pas le nom TABLIASSE, il nomme
la
zone TABLIASSE_1, TABLIASSE_2 (à chaque fois que j'exécute la macro.
ticegestion
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc: With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de la
supprimer pour la recréer à chaque importation des nouvelles données dans la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add...
...
End with
Ainsi:
ActiveSheet.UsedRange.Name = "TabLiasse"
Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait
marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour
toutes, une fonction "dynamique" pour définir le nom de la plage des
données, ainsi, celle-ci est recalculée automatiquement et plus besoin de
la
supprimer pour la recréer à chaque importation des nouvelles données dans
la
feuille, par exemple :
Insertion / Nom / Définir (CTRL F3)
Nom: TabLiasse
Fait référence à :
ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1))
Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs
(cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne
doivent donc pas contenir de cellules vides pour que le résultat soit
pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser
une formule dans la zone "référe à", même si je ne l'utilise pas (car un
code "violent" efface tout avant de créer la source de données), ce type de
formule peut avoir des utilisations monumentales (notamment avec les
recherches verticales)
Chapeau !
J'ai publié sur mon site la première version de l'application en question
(mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour
exporter au préalable une balance)
Bien cordialement et encore merci
Fred Redonnet
http://www.ticegestion.com (suivre bts cgo P10)
As-tu essayé de déplacer l'instruction de définition du nom après le bloc: With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de la
supprimer pour la recréer à chaque importation des nouvelles données dans la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
Lydya
Fred,
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille, indépendamment des noms qui ont été définis. A bientôt.
Lydya
"ticegestion" a écrit dans le message de news:bn6ss2$146$
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de
la
supprimer pour la recréer à chaque importation des nouvelles données dans
la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de
formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
Fred,
La propriété UsedRange renvoie un objet Range représentant la plage
contenant des données dans une feuille, indépendamment des noms qui ont été
définis.
A bientôt.
Lydya
"ticegestion" <web@ticegestion.com> a écrit dans le message de
news:bn6ss2$146$1@news-reader5.wanadoo.fr...
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le
bloc:
With ActiveSheet.QueryTables.Add...
...
End with
Ainsi:
ActiveSheet.UsedRange.Name = "TabLiasse"
Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait
marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant,
une
fois pour
toutes, une fonction "dynamique" pour définir le nom de la plage des
données, ainsi, celle-ci est recalculée automatiquement et plus besoin
de
la
supprimer pour la recréer à chaque importation des nouvelles données
dans
la
feuille, par exemple :
Insertion / Nom / Définir (CTRL F3)
Nom: TabLiasse
Fait référence à :
ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1))
Où Liste est le nom de la feuille, A1 la première cellule de la plage,
les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs
(cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne
doivent donc pas contenir de cellules vides pour que le résultat soit
pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser
une formule dans la zone "référe à", même si je ne l'utilise pas (car un
code "violent" efface tout avant de créer la source de données), ce type
de
formule peut avoir des utilisations monumentales (notamment avec les
recherches verticales)
Chapeau !
J'ai publié sur mon site la première version de l'application en question
(mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour
exporter au préalable une balance)
Bien cordialement et encore merci
Fred Redonnet
http://www.ticegestion.com (suivre bts cgo P10)
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille, indépendamment des noms qui ont été définis. A bientôt.
Lydya
"ticegestion" a écrit dans le message de news:bn6ss2$146$
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de
la
supprimer pour la recréer à chaque importation des nouvelles données dans
la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de
formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
Lydya
Re,
même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), Le fait de supprimer toutes les données de la feuille ne trouble aucunement
la fonction à laquelle fait référence le nom. Tant que ni la feuille ni le nom ne sont pas supprimés, elle reste effective.
J'irai faire un petit tour sur ton site !
Lydya
"ticegestion" a écrit dans le message de news:bn6ss2$146$
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de
la
supprimer pour la recréer à chaque importation des nouvelles données dans
la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de
formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
Re,
même si je ne l'utilise pas (car un
code "violent" efface tout avant de créer la source de données),
Le fait de supprimer toutes les données de la feuille ne trouble aucunement
la fonction à laquelle fait référence le nom. Tant que ni la feuille ni le
nom ne sont pas supprimés, elle reste effective.
J'irai faire un petit tour sur ton site !
Lydya
"ticegestion" <web@ticegestion.com> a écrit dans le message de
news:bn6ss2$146$1@news-reader5.wanadoo.fr...
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le
bloc:
With ActiveSheet.QueryTables.Add...
...
End with
Ainsi:
ActiveSheet.UsedRange.Name = "TabLiasse"
Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait
marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant,
une
fois pour
toutes, une fonction "dynamique" pour définir le nom de la plage des
données, ainsi, celle-ci est recalculée automatiquement et plus besoin
de
la
supprimer pour la recréer à chaque importation des nouvelles données
dans
la
feuille, par exemple :
Insertion / Nom / Définir (CTRL F3)
Nom: TabLiasse
Fait référence à :
ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1))
Où Liste est le nom de la feuille, A1 la première cellule de la plage,
les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs
(cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne
doivent donc pas contenir de cellules vides pour que le résultat soit
pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser
une formule dans la zone "référe à", même si je ne l'utilise pas (car un
code "violent" efface tout avant de créer la source de données), ce type
de
formule peut avoir des utilisations monumentales (notamment avec les
recherches verticales)
Chapeau !
J'ai publié sur mon site la première version de l'application en question
(mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour
exporter au préalable une balance)
Bien cordialement et encore merci
Fred Redonnet
http://www.ticegestion.com (suivre bts cgo P10)
même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), Le fait de supprimer toutes les données de la feuille ne trouble aucunement
la fonction à laquelle fait référence le nom. Tant que ni la feuille ni le nom ne sont pas supprimés, elle reste effective.
J'irai faire un petit tour sur ton site !
Lydya
"ticegestion" a écrit dans le message de news:bn6ss2$146$
Bonsoir Lydya,
As-tu essayé de déplacer l'instruction de définition du nom après le bloc:
With ActiveSheet.QueryTables.Add... ... End with Ainsi: ActiveSheet.UsedRange.Name = "TabLiasse" Merci pour ta réponse, cette propriété UsedRange représente la toute
dernière plage nommée utilisée, c'est ça ? Dans ce cas, cela pourrait marcher.
Cela dit, le problème aurait peut-être pu être contourné en utilisant, une
fois pour toutes, une fonction "dynamique" pour définir le nom de la plage des données, ainsi, celle-ci est recalculée automatiquement et plus besoin de
la
supprimer pour la recréer à chaque importation des nouvelles données dans
la
feuille, par exemple : Insertion / Nom / Définir (CTRL F3) Nom: TabLiasse Fait référence à : ÞCALER(Liste!$A$1;0;0;NBVAL(Liste!$A:$A);NBVAL(Liste!$1:$1)) Où Liste est le nom de la feuille, A1 la première cellule de la plage, les
deux fonctions NBVAL renvoient respectivement le nombre de valeurs (cellules
contenant une donnée) dans la colonne A et dans la ligne 1, celles-ci ne doivent donc pas contenir de cellules vides pour que le résultat soit pertinent.
Un grand merci pour cette formule, je ne savais pas qu'on pouvait utiliser une formule dans la zone "référe à", même si je ne l'utilise pas (car un code "violent" efface tout avant de créer la source de données), ce type de
formule peut avoir des utilisations monumentales (notamment avec les recherches verticales) Chapeau ! J'ai publié sur mon site la première version de l'application en question (mais c'est peu parlant si on ne dispose pas d'un logiciel comptable pour exporter au préalable une balance) Bien cordialement et encore merci Fred Redonnet http://www.ticegestion.com (suivre bts cgo P10)
ticegestion
Bonjour Lydia Merci pour cette précision, ça répond tout à fait au problème Cordialement Fred http://www.ticegestion.com
"Lydya" a écrit dans le message de news:%
Fred,
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille, indépendamment des noms qui ont été
définis. A bientôt.
Lydya
Bonjour Lydia
Merci pour cette précision, ça répond tout à fait au problème
Cordialement
Fred
http://www.ticegestion.com
"Lydya" <prenom@libertysurf.fr> a écrit dans le message de
news:%23gSaETOmDHA.3688@TK2MSFTNGP11.phx.gbl...
Fred,
La propriété UsedRange renvoie un objet Range représentant la plage
contenant des données dans une feuille, indépendamment des noms qui ont
été
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille,
ET les cellules qui ont été formatées différemment du format par défaut, même si elles sont vides !
AV
Lydya
Bonjour,
Il faut donc éviter de laisser traîner des formats dans des cellules vides situées en dehors du UsedRange ;-) Finalement, que nous conseilles-tu ? Eviter systématiquement d'utiliser cette propriété ou ne l'utiliser qu'après un code de nettoyage ? Merci !
Lydya
"AV" a écrit dans le message de news:bn7tj0$1qv$
Juste comme ça...
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille,
ET les cellules qui ont été formatées différemment du format par défaut, même si
elles sont vides !
AV
Bonjour,
Il faut donc éviter de laisser traîner des formats dans des cellules vides
situées en dehors du UsedRange
;-)
Finalement, que nous conseilles-tu ? Eviter systématiquement d'utiliser
cette propriété ou ne l'utiliser qu'après un code de nettoyage ?
Merci !
Lydya
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:bn7tj0$1qv$1@news-reader5.wanadoo.fr...
Juste comme ça...
La propriété UsedRange renvoie un objet Range représentant la plage
contenant des données dans une feuille,
ET les cellules qui ont été formatées différemment du format par défaut,
même si
Il faut donc éviter de laisser traîner des formats dans des cellules vides situées en dehors du UsedRange ;-) Finalement, que nous conseilles-tu ? Eviter systématiquement d'utiliser cette propriété ou ne l'utiliser qu'après un code de nettoyage ? Merci !
Lydya
"AV" a écrit dans le message de news:bn7tj0$1qv$
Juste comme ça...
La propriété UsedRange renvoie un objet Range représentant la plage contenant des données dans une feuille,
ET les cellules qui ont été formatées différemment du format par défaut, même si
elles sont vides !
AV
AV
Ave Lydya,
Eviter systématiquement d'utiliser cette propriété ? Sauf certitude (un mien fichier), c'est ce que je fais !
ou ne l'utiliser qu'après un code de nettoyage ? Pas toujours nickel le nettoyage...
AV
Ave Lydya,
Eviter systématiquement d'utiliser
cette propriété ?
Sauf certitude (un mien fichier), c'est ce que je fais !
ou ne l'utiliser qu'après un code de nettoyage ?
Pas toujours nickel le nettoyage...