Utiliser une plage dynamique dans un fichier fermé
7 réponses
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 ?
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
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
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 ?
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
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
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 :
b980eb30-f59a-43bf-a365-ff6403a9b289@googlegroups.com...
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 ?
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
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
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
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
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
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 ?
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
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
> 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
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
"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
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
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