Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser une plage dynamique dans un fichier fermé

7 réponses
Avatar
ThierryP
Bonjour le forum,

Dans un classeur, j'utilise index+equiv pour r=E9cup=E9rer des donn=E9es da=
ns un autre classeur, dans lequel j'ai cr=E9=E9 des plages dynamiques avec =
decaler().
Tout se passe bien tant que ce deuxi=E8me classeur est ouvert; si je le fer=
me, j'ai une erreur de liaison...
Je me suis donc dit, pas grave, en ouvrant le premier classeur, j'ouvre le =
deuxi=E8me en VBA.... sauf que l'erreur de liaison intervient avant le work=
book_open :-(((

Y a-t-il une ruse autre qu'utiliser ADO pour importer ces donn=E9es dans mo=
n premier classeur ?

D'avance merci :-)

ThierryP

7 réponses

Avatar
DanielCo
Bonjour,
Effectivement, mais pourquoi utiliser une plage dynamique ? Utilise des
colonnes entières... A moins que la disposition de tes données ne le
permette pas.
Cordialement.
Daniel


Bonjour le forum,

Dans un classeur, j'utilise index+equiv pour récupérer des données dans un
autre classeur, dans lequel j'ai créé des plages dynamiques avec decaler().
Tout se passe bien tant que ce deuxième classeur est ouvert; si je le ferme,
j'ai une erreur de liaison... Je me suis donc dit, pas grave, en ouvrant le
premier classeur, j'ouvre le deuxième en VBA.... sauf que l'erreur de liaison
intervient avant le workbook_open :-(((

Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données dans mon
premier classeur ?

D'avance merci :-)

ThierryP
Avatar
MichD
Bonjour,

Une alternative, dans le fichier source, dans ladite feuille,
tu peux utiliser VBA pour mettre à jour le nom d'une plage
au lieu d'utiliser la fonction "Decaler"

Exemple : Donner le nom "toto" à la plage A1:Ax au fur et à
mesure que l'usager modifier les entrées.

'----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(1)) Is Nothing Then
Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "toto"
End If
End Sub
'----------------------------


MichD
--------------------------------------------------------------
"ThierryP" a écrit dans le message de groupe de discussion :


Bonjour le forum,

Dans un classeur, j'utilise index+equiv pour récupérer des données dans un autre classeur, dans lequel j'ai
créé des plages dynamiques avec decaler().
Tout se passe bien tant que ce deuxième classeur est ouvert; si je le ferme, j'ai une erreur de liaison...
Je me suis donc dit, pas grave, en ouvrant le premier classeur, j'ouvre le deuxième en VBA.... sauf que
l'erreur de liaison intervient avant le workbook_open :-(((

Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données dans mon premier classeur ?

D'avance merci :-)

ThierryP
Avatar
ThierryP
Bonjour,

Bonne question !! En fait, comme un certain nombre de formats de cellules s ont utilisées, et que je me souviens avoir lu il y a longtemps que ça p ouvait poser des problèmes, genre fichiers "obèses", j'ai pris l'habitu de des plages limitées au strict utile ! Mais effectivement, ça me simp lifierait la vie...

Merci

ThierryP


Le mercredi 6 février 2013 12:49:53 UTC+1, DanielCo a écrit :
Bonjour,

Effectivement, mais pourquoi utiliser une plage dynamique ? Utilise des

colonnes entières... A moins que la disposition de tes données ne le

permette pas.

Cordialement.

Daniel





> Bonjour le forum,

>

> Dans un classeur, j'utilise index+equiv pour récupérer des donnée s dans un

> autre classeur, dans lequel j'ai créé des plages dynamiques avec de caler().

> Tout se passe bien tant que ce deuxième classeur est ouvert; si je le ferme,

> j'ai une erreur de liaison... Je me suis donc dit, pas grave, en ouvran t le

> premier classeur, j'ouvre le deuxième en VBA.... sauf que l'erreur de liaison

> intervient avant le workbook_open :-(((

>

> Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données dan s mon

> premier classeur ?

>

> D'avance merci :-)

>

> ThierryP
Avatar
DanielCo
Aucun risque, sauf avec les formules matricielles pour lesquelles il
faut, effectivement, limiter absolument la taille des plages. Ce n'est
pas alors une question de taille, mais de temps de calcul.
Daniel


Bonjour,

Bonne question !! En fait, comme un certain nombre de formats de cellules
sont utilisées, et que je me souviens avoir lu il y a longtemps que ça
pouvait poser des problèmes, genre fichiers "obèses", j'ai pris l'habitude
des plages limitées au strict utile ! Mais effectivement, ça me simplifierait
la vie...

Merci

ThierryP


Le mercredi 6 février 2013 12:49:53 UTC+1, DanielCo a écrit :
Bonjour,

Effectivement, mais pourquoi utiliser une plage dynamique ? Utilise des

colonnes entières... A moins que la disposition de tes données ne le

permette pas.

Cordialement.

Daniel





Bonjour le forum,







Dans un classeur, j'utilise index+equiv pour récupérer des données dans un
autre classeur, dans lequel j'ai créé des plages dynamiques avec decaler().
Tout se passe bien tant que ce deuxième classeur est ouvert; si je le
ferme, j'ai une erreur de liaison... Je me suis donc dit, pas grave, en
ouvrant le premier classeur, j'ouvre le deuxième en VBA.... sauf que
l'erreur de liaison intervient avant le workbook_open :-(((




Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données dans mon
premier classeur ?







D'avance merci :-)







ThierryP
Avatar
ThierryP
J'ai aussi du matriciel :-((((

ThierryP

Le mercredi 6 février 2013 14:31:13 UTC+1, DanielCo a écrit :
Aucun risque, sauf avec les formules matricielles pour lesquelles il

faut, effectivement, limiter absolument la taille des plages. Ce n'est

pas alors une question de taille, mais de temps de calcul.

Daniel





> Bonjour,

>

> Bonne question !! En fait, comme un certain nombre de formats de cellul es

> sont utilisées, et que je me souviens avoir lu il y a longtemps que ça

> pouvait poser des problèmes, genre fichiers "obèses", j'ai pris l'h abitude

> des plages limitées au strict utile ! Mais effectivement, ça me sim plifierait

> la vie...

>

> Merci

>

> ThierryP

>

>

> Le mercredi 6 février 2013 12:49:53 UTC+1, DanielCo a écrit :

>> Bonjour,

>>

>> Effectivement, mais pourquoi utiliser une plage dynamique ? Utilise de s

>>

>> colonnes entières... A moins que la disposition de tes données ne le

>>

>> permette pas.

>>

>> Cordialement.

>>

>> Daniel

>>

>>

>>

>>

>>

>>> Bonjour le forum,

>>

>>>

>>

>>> Dans un classeur, j'utilise index+equiv pour récupérer des donn ées dans un

>>> autre classeur, dans lequel j'ai créé des plages dynamiques avec decaler().

>>> Tout se passe bien tant que ce deuxième classeur est ouvert; si j e le

>>> ferme, j'ai une erreur de liaison... Je me suis donc dit, pas grave , en

>>> ouvrant le premier classeur, j'ouvre le deuxième en VBA.... sauf que

>>> l'erreur de liaison intervient avant le workbook_open :-(((

>>>

>>

>>> Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données d ans mon

>>> premier classeur ?

>>

>>>

>>

>>> D'avance merci :-)

>>

>>>

>>

>>> ThierryP
Avatar
ThierryP
Bonjour Denis,

Merci également de ta réponse, que je vais suivre. Comme je l'ai expliq ué à Daniel, j'ai également pas mal de formules, y compris matriciell es que je crée au fur et à mesure de l'augmentation des données.

Merci :-))

ThierryP

Le mercredi 6 février 2013 13:11:31 UTC+1, MichD a écrit :
Bonjour,



Une alternative, dans le fichier source, dans ladite feuille,

tu peux utiliser VBA pour mettre à jour le nom d'une plage

au lieu d'utiliser la fonction "Decaler"



Exemple : Donner le nom "toto" à la plage A1:Ax au fur et à

mesure que l'usager modifier les entrées.



'----------------------------

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Columns(1)) Is Nothing Then

Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "toto"

End If

End Sub

'----------------------------





MichD

--------------------------------------------------------------

"ThierryP" a écrit dans le message de groupe de discussion :





Bonjour le forum,



Dans un classeur, j'utilise index+equiv pour récupérer des données dans un autre classeur, dans lequel j'ai

créé des plages dynamiques avec decaler().

Tout se passe bien tant que ce deuxième classeur est ouvert; si je le f erme, j'ai une erreur de liaison...

Je me suis donc dit, pas grave, en ouvrant le premier classeur, j'ouvre l e deuxième en VBA.... sauf que

l'erreur de liaison intervient avant le workbook_open :-(((



Y a-t-il une ruse autre qu'utiliser ADO pour importer ces données dans mon premier classeur ?



D'avance merci :-)



ThierryP
Avatar
DanielCo
Alors, utilise plutôt une macro, comme te l'a suggéré MichD.
Daniel


J'ai aussi du matriciel :-((((

ThierryP