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

Pourquoi cela fonctionnait samedi et plus maintenant ?

17 réponses
Avatar
Denys
Bonjour =E0 tous,

J'essaie de copier de l'information depuis un classeur d=E9j=E0 ouvert.
Quelqu'un m'a propos=E9 d'activer dans la biblioth=E8que de r=E9f=E9rence V=
BA,
le "Microsoft Activex Data Objects 2.8 Library" au lieu du 2.0 comme
dans le code qui suit:

Samedi, cela fonctionnait tr=E8s bien et j'allais chercher de l'info sur
un fichier d=E9j=E0 ouvert. Aujourd'hui, rien =E0 faire, Excel me r=E9pond =
que
le "Microsoft Jet database engine cannot open the file" parce que
fichier est d=E9j=E0 ouvert et que je n'y ai pas acc=E8s.
J'ai v=E9rifi=E9, la r=E9f=E9rence est toujours coch=E9e....

Voici le code en question...


'Must have the Microsoft Activex Data Objects 2.0 Library
'in the tools----reference---in the VBA section (chang=E9 pour 2.8)
Sub GetExternalData(srcFile As String, _
srcSheet As String, _
srcRange As String, _
TTL As Boolean, _
outArr As Variant)
Dim myConn As ADODB.Connection, myCmd As ADODB.Command
Dim HDR As String, myRS As ADODB.Recordset, RS_n As Integer, RS_f As
Integer
Dim Arr

Set myConn =3D New ADODB.Connection
If TTL =3D True Then HDR =3D "Yes" Else HDR =3D "No"
myConn.Open "Provider=3DMicrosoft.Jet.OLEDB.4.0;" & _
"Data Source=3D" & srcFile & ";" & _
"Extended Properties=3D""Excel 8.0;" & _
"HDR=3D" & HDR & ";IMEX=3D1;"""
Set myCmd =3D New ADODB.Command
myCmd.ActiveConnection =3D myConn
If srcSheet =3D "" _
Then myCmd.CommandText =3D "SELECT * from `" & srcRange & "`" _
Else myCmd.CommandText =3D "SELECT * from `" & srcSheet & "$" &
srcRange & "`"
Set myRS =3D New ADODB.Recordset
myRS.Open myCmd, , adOpenKeyset, adLockOptimistic
ReDim Arr(1 To myRS.RecordCount, 1 To myRS.Fields.Count)
myRS.MoveFirst
Do While Not myRS.EOF
For RS_n =3D 1 To myRS.RecordCount 'lignes
For RS_f =3D 0 To myRS.Fields.Count - 1 'colonnes
Arr(RS_n, RS_f + 1) =3D myRS.Fields(RS_f).Value
Next
myRS.MoveNext
Next
Loop
myConn.Close
Set myRS =3D Nothing
Set myCmd =3D Nothing
Set myConn =3D Nothing

outArr =3D Arr

End Sub

Si quequ'un y comprend quelque chose, cela m'aiderait beaucoup....

Merci

Denys

7 réponses

1 2
Avatar
Denys
Quelque chose de curieux se produit.....

Le nom des filières reste en mémoire dans mon VBA project bien après
que ces fichiers se soient fermés...

J' ai même accès au code... pourtant, le fichier est fermé....

Étrange

Denys




On 1 nov, 08:33, Denys wrote:
Vois-tu,

Le débuggeur d'Excel met ce qui suit en jaune:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

disant que le fichier est déjà ouvert et que je n'y ai pas accès

Denys

On 31 oct, 13:29, "MichDenis" wrote:



Qu'as-tu utiliser comme procédure ?

"Denys" a écrit dans le message de news:

Bonjour Denis,

Cette fois-ci, c'est parfait...

Merci infiniment

Denys- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
MichDenis
A ) Même si le classeur n'a pas besoin d'être ouvert, il est impossible
de lire des données de ce dernier peu importe la méthode utilisée
si ce fichier à un mot de passe pour pouvoir l'ouvrir. Ce mot de
passe lui est habituellement donné lorsqu'apparaît la fenêtre
"Enregistrer sous" / Outils / Options générales.

| Le nom des filières reste en mémoire dans mon VBA project bien après
| que ces fichiers se soient fermés...

Je ne comprends pas ce que tu veux me signifier !



"Denys" a écrit dans le message de news:

Quelque chose de curieux se produit.....

Le nom des filières reste en mémoire dans mon VBA project bien après
que ces fichiers se soient fermés...

J' ai même accès au code... pourtant, le fichier est fermé....

Étrange

Denys




On 1 nov, 08:33, Denys wrote:
Vois-tu,

Le débuggeur d'Excel met ce qui suit en jaune:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

disant que le fichier est déjà ouvert et que je n'y ai pas accès

Denys

On 31 oct, 13:29, "MichDenis" wrote:



Qu'as-tu utiliser comme procédure ?

"Denys" a écrit dans le message de news:

Bonjour Denis,

Cette fois-ci, c'est parfait...

Merci infiniment

Denys- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Denys
Bonjour Denis,

Le mot de passe doit être entré dans un userform apparaissant sur une
page de bienvenue, et non pas sous "Enregistrer sous/ etc..."
D'ailleurs, lorsque le classeur est fermé, il n'y a pas de problèmes
pour récupérer les données.

Lorsque l'on ouvre la fenêtre d'éditeur Visual Basic, à gauche en haut
dans la liste des projets VBA, le nom des classeurs dont j'ai essayé
d'aller chercher de l'info mais qui étaient ouverts restent
listés....L'usager qui m'a servi de cobaye s'est plaint que les infos
entrées dans son fichier ne se sauvegardaient pas (celui dont je veux
extraire des infos).....

Assez curieusement, dans Tools---Reference (VBA) apparaissent des
choix comme Unsaved VBA Project... Si je ferme complètement Excel et
l'ouvre de nouveau, tout disparait...

Lorsque les classeurs sont fermés, je n'ai pas de problèmes, sauf que
ce n'est malheureusement pas toujours le cas....

Denys

On 1 nov, 09:21, "MichDenis" wrote:
A ) Même si le classeur n'a pas besoin d'être ouvert, il est impossib le
de lire des données de ce dernier peu importe la méthode utilis ée
si ce fichier à un mot de passe pour pouvoir l'ouvrir. Ce mot de
passe lui est habituellement donné lorsqu'apparaît la fenêtre
"Enregistrer sous" / Outils / Options générales.

| Le nom des filières reste en mémoire dans mon VBA project bien apr ès
| que ces fichiers se soient fermés...

Je ne comprends pas ce que tu veux me signifier !



Avatar
MichDenis
Faudrait d'abord que tu définisses l'environnement dans lequel
tu travailles. Si tu es en réseau et que le document est ouvert
sur un autre ordinateur pendant que t'essaies à partir d'un
autre poste de travail d'exécuter une requête sur le fichier
....Je ne vois pas comment "ADO" pourrait
aller lire non pas les données du fichier "chemin et nom du
fichier que tu lui as indiqué" dans la procédure, mais les données
en mémoire vive du fichier ouvert situé sur un autre ordinateur
pendant que l'usager travaille dans ce fichier !!! Si cela représente
ton environnement, je ne suis plus dans le coup.... je n'ai aucun
moyen de tester quoi que ce soit ! Je te souhaite bonne chance !


"Denys" a écrit dans le message de news:

Bonjour Denis,

Le mot de passe doit être entré dans un userform apparaissant sur une
page de bienvenue, et non pas sous "Enregistrer sous/ etc..."
D'ailleurs, lorsque le classeur est fermé, il n'y a pas de problèmes
pour récupérer les données.

Lorsque l'on ouvre la fenêtre d'éditeur Visual Basic, à gauche en haut
dans la liste des projets VBA, le nom des classeurs dont j'ai essayé
d'aller chercher de l'info mais qui étaient ouverts restent
listés....L'usager qui m'a servi de cobaye s'est plaint que les infos
entrées dans son fichier ne se sauvegardaient pas (celui dont je veux
extraire des infos).....

Assez curieusement, dans Tools---Reference (VBA) apparaissent des
choix comme Unsaved VBA Project... Si je ferme complètement Excel et
l'ouvre de nouveau, tout disparait...

Lorsque les classeurs sont fermés, je n'ai pas de problèmes, sauf que
ce n'est malheureusement pas toujours le cas....

Denys

On 1 nov, 09:21, "MichDenis" wrote:
A ) Même si le classeur n'a pas besoin d'être ouvert, il est impossible
de lire des données de ce dernier peu importe la méthode utilisée
si ce fichier à un mot de passe pour pouvoir l'ouvrir. Ce mot de
passe lui est habituellement donné lorsqu'apparaît la fenêtre
"Enregistrer sous" / Outils / Options générales.

| Le nom des filières reste en mémoire dans mon VBA project bien après
| que ces fichiers se soient fermés...

Je ne comprends pas ce que tu veux me signifier !



Avatar
Denys
Bonjour Denis,

Je suis effectivement en réseau.... et ce que tu me dis est tout à
fait logique.... Alors le superviseur devra cueillir ses données tôt
le matin, ou bien tard le soir...

Accepte mes excuses, car j'ai franchement l'impression de t'avoir fait
perdre du temps, ce qui ne serait pas arrivé si j'avais d'abord
mentionné que j'étais en réseau.... (je m'en souviendrai)

Je te remercie infiniment pour l'aide qu'encore une fois tu m'as
apportée...

Bonne journée

Denys

On 1 nov, 10:43, "MichDenis" wrote:
Faudrait d'abord que tu définisses l'environnement dans lequel
tu travailles. Si tu es en réseau et que le document est ouvert
sur un autre ordinateur pendant que t'essaies à partir d'un
autre poste de travail d'exécuter une requête sur le fichier
....Je ne vois pas comment "ADO" pourrait
aller lire non pas les données du fichier "chemin et nom du
fichier que tu lui as indiqué" dans la procédure, mais les données
en mémoire vive du fichier ouvert situé sur un autre ordinateur
pendant que l'usager travaille dans ce fichier !!! Si cela représente
ton environnement, je ne suis plus dans le coup.... je n'ai aucun
moyen de tester quoi que ce soit ! Je te souhaite bonne chance !



Avatar
MichDenis
Pas de problème !

Pour cueillir tes données, tu peux utiliser le planificateur de Windows
pour lancer ton fichier et la macro susceptible de faire ce travail et
ce, selon l'horaire et l'heure que tu conviendras.

La seule obligation est de conserver "OUVERT" l'ordinateur qui
doit exécuter le travail. L'application Excel n'a pas besoin d'être ouvert.







"Denys" a écrit dans le message de news:

Bonjour Denis,

Je suis effectivement en réseau.... et ce que tu me dis est tout à
fait logique.... Alors le superviseur devra cueillir ses données tôt
le matin, ou bien tard le soir...

Accepte mes excuses, car j'ai franchement l'impression de t'avoir fait
perdre du temps, ce qui ne serait pas arrivé si j'avais d'abord
mentionné que j'étais en réseau.... (je m'en souviendrai)

Je te remercie infiniment pour l'aide qu'encore une fois tu m'as
apportée...

Bonne journée

Denys

On 1 nov, 10:43, "MichDenis" wrote:
Faudrait d'abord que tu définisses l'environnement dans lequel
tu travailles. Si tu es en réseau et que le document est ouvert
sur un autre ordinateur pendant que t'essaies à partir d'un
autre poste de travail d'exécuter une requête sur le fichier
....Je ne vois pas comment "ADO" pourrait
aller lire non pas les données du fichier "chemin et nom du
fichier que tu lui as indiqué" dans la procédure, mais les données
en mémoire vive du fichier ouvert situé sur un autre ordinateur
pendant que l'usager travaille dans ce fichier !!! Si cela représente
ton environnement, je ne suis plus dans le coup.... je n'ai aucun
moyen de tester quoi que ce soit ! Je te souhaite bonne chance !



Avatar
Denys
Figures-toi donc que cette fonctionnalité nous est refusée !!!!
Les banques sont d'une nervosité !!!! Enfin.... on fera avec...

À bientôt Denis, j'en suis sûr....

Denys

On 1 nov, 11:45, "MichDenis" wrote:
Pas de problème !

Pour cueillir tes données, tu peux utiliser le planificateur de Windows
pour lancer ton fichier et la macro susceptible de faire ce travail et
ce, selon l'horaire et l'heure que tu conviendras.

La seule obligation est de conserver "OUVERT" l'ordinateur qui
doit exécuter le travail. L'application Excel n'a pas besoin d'être o uvert.

"Denys" a écrit dans le message de news:

Bonjour Denis,

Je suis effectivement en réseau.... et ce que tu me dis est tout à
fait logique.... Alors le superviseur devra cueillir ses données tôt
le matin, ou bien tard le soir...

Accepte mes excuses, car j'ai franchement l'impression de t'avoir fait
perdre du temps, ce qui ne serait pas arrivé si j'avais d'abord
mentionné que j'étais en réseau.... (je m'en souviendrai)

Je te remercie infiniment pour l'aide qu'encore une fois tu m'as
apportée...

Bonne journée

Denys

On 1 nov, 10:43, "MichDenis" wrote:



Faudrait d'abord que tu définisses l'environnement dans lequel
tu travailles. Si tu es en réseau et que le document est ouvert
sur un autre ordinateur pendant que t'essaies à partir d'un
autre poste de travail d'exécuter une requête sur le fichier
....Je ne vois pas comment "ADO" pourrait
aller lire non pas les données du fichier "chemin et nom du
fichier que tu lui as indiqué" dans la procédure, mais les données
en mémoire vive du fichier ouvert situé sur un autre ordinateur
pendant que l'usager travaille dans ce fichier !!! Si cela représente
ton environnement, je ne suis plus dans le coup.... je n'ai aucun
moyen de tester quoi que ce soit ! Je te souhaite bonne chance !- Masqu er le texte des messages précédents -


- Afficher le texte des messages précédents -



1 2