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

Chercher cellule dans classeur non ouvert

7 réponses
Avatar
Grégory
Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l’avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J’arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l’avis attribué), mais il me faut ensuite aller chercher
l’avis des deux autres. C’est là que ça se corse puisque chaque personne trie
les articles selon ses critères…
Voici donc comment je compte procéder:
1. Récupération du nom de l’article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l’avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg

7 réponses

Avatar
-=lolol=-
Bonjour Grégory,
je ne sais pas si ça t'aidera mais tu trouveras sur excelabo une(s)
méthode(s) pour lire dans un classeur fermé
http://www.excelabo.net/xl/messages.php#valcell
hth
@+lolo


Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille
d'un classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l’avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J’arrive bien à récupérer les données de la 1ère personne (je copie
la liste des articles + l’avis attribué), mais il me faut ensuite
aller chercher l’avis des deux autres. C’est là que ça se corse
puisque chaque personne trie les articles selon ses critères…
Voici donc comment je compte procéder:
1. Récupération du nom de l’article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l’avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg


Avatar
michdenis
Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:
Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg
Avatar
Grégory
Bonjour,

Mon fichier fermé est en fait un tableau avec plusieurs colonnes et dont les
lignes sont les articles.
La seule colonne qui m'intéresse dans ce cas est celle qui contient les avis
déposés sur les articles.
Mais comme chaque personne classe les articles selon ses préférences, je ne
peux pas me contenter de copier bêtement cette colonne "avis" puisque l'ordre
n'est pas le même pour tout le monde.
Je suis contraint de la copier "avis par avis" en cherchant à chaque fois
l'article (donc la ligne) jugé.

Cette manip est-elle possible sans ouvrir le classeur dont on extrait les
avis?

J'espère que c'est un peu plus clair. Merci d'avance pour l'aide,

Greg


Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:
Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg





Avatar
michdenis
Bonjour Grégory,

Est-ce que tes champs ont des étiquettes de colonnes ?

Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des conditions pour extraire l'information que tu désires ?

On peut utiliser une requête "comme dans access" sur un fichier excel pour extraire l'information désirée, cela dépend si le tableau
des données est suffisamment bien organisé pour le faire. Tes informations supplémentaires ne sont pas très concluantes ...Faudra
que tu précises davantage !

Comment tu intègres dans ton tableau "l'avis de 3 personne différentes sur des articles" que tu veux extraire ?


Salutations!



"Grégory" a écrit dans le message de news:
Bonjour,

Mon fichier fermé est en fait un tableau avec plusieurs colonnes et dont les
lignes sont les articles.
La seule colonne qui m'intéresse dans ce cas est celle qui contient les avis
déposés sur les articles.
Mais comme chaque personne classe les articles selon ses préférences, je ne
peux pas me contenter de copier bêtement cette colonne "avis" puisque l'ordre
n'est pas le même pour tout le monde.
Je suis contraint de la copier "avis par avis" en cherchant à chaque fois
l'article (donc la ligne) jugé.

Cette manip est-elle possible sans ouvrir le classeur dont on extrait les
avis?

J'espère que c'est un peu plus clair. Merci d'avance pour l'aide,

Greg


Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:

Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg





Avatar
Grégory
Bonjour,

Merci de ton attention.
Oui, mes colonnes ont des étiquettes (si étiquette = titre de colonne).

"Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des
conditions pour extraire l'information que tu désires": ???

En ce qui concerne l'intégration dans mon tableau de "l'avis de 3 personnes
différentes sur des articles", je vais au plus simple: je classe les articles
par ordre alphabétique en ligne et j'associe les 3 avis des personnes dans 3
colonnes.

J'espère être plus clair en présentant mon idée de l'algorithme.
Pour commencer, les fichiers que je manipule ont une structure figée: les
colonnes dans lesquelles je vais chercher mes infos seront toujours à la même
place.

1. Je copie de mon fichier de synthèse le nom du premier article.
2. Je recherche dans le fichier de la 1ère personne la chaîne de caractère
correspondant au nom de l'artice.
3. Je récupère la ligne X correspondant à cette occurence.
4. Je sais que l'avis de cette personne se situe toujours dans la colonne Y,
donc je vais chercher le contenu de la cellule (X, Y).
5. Je colle ce contenu dans mon fichier de synthèse.

Je boucle jusqu'à avoir l'avis de tous les articles puis je passe à la
deuxième personne.

Merci de ton aide,

Greg


Bonjour Grégory,

Est-ce que tes champs ont des étiquettes de colonnes ?

Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des conditions pour extraire l'information que tu désires ?

On peut utiliser une requête "comme dans access" sur un fichier excel pour extraire l'information désirée, cela dépend si le tableau
des données est suffisamment bien organisé pour le faire. Tes informations supplémentaires ne sont pas très concluantes ...Faudra
que tu précises davantage !

Comment tu intègres dans ton tableau "l'avis de 3 personne différentes sur des articles" que tu veux extraire ?


Salutations!



"Grégory" a écrit dans le message de news:
Bonjour,

Mon fichier fermé est en fait un tableau avec plusieurs colonnes et dont les
lignes sont les articles.
La seule colonne qui m'intéresse dans ce cas est celle qui contient les avis
déposés sur les articles.
Mais comme chaque personne classe les articles selon ses préférences, je ne
peux pas me contenter de copier bêtement cette colonne "avis" puisque l'ordre
n'est pas le même pour tout le monde.
Je suis contraint de la copier "avis par avis" en cherchant à chaque fois
l'article (donc la ligne) jugé.

Cette manip est-elle possible sans ouvrir le classeur dont on extrait les
avis?

J'espère que c'est un peu plus clair. Merci d'avance pour l'aide,

Greg


Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:

Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg










Avatar
michdenis
Bonjour Grégory,

Voici un exemple de requête qu'il est possible de faire ave DAO sur un fichier fermé. Évidemment, tout ceci doit être adapté selon
ton application.

Tu dois insérer la bibliothèque suivante à ton projet :

Fenêtre vbe(visual basic editor) / barre menu / outils / references :
"Microsoft DAO 3.6 objects librairy"

'------------------------------------------------
Sub RequêteExcel()

Dim bd As Database, Rst As Recordset
Dim FichierSource As String, NomFeuille As String
Dim Requete As String, Dest As Range
Dim MaVar As String, MaVar1 As String, MaVar2 As String
Dim C As Integer

'Chemin et fichier source de la base de données.
FichierSource = "C:AtravailDonnées.xls"

'nom de la feuille où se trouve les données
'dans le fichier source
NomFeuille = "Feuil1"

'Cellule de destination où sera copiée
'le résultat de la requête
Set Dest = ThisWorkbook.Worksheets("Feuil1").Range("A1")

'ouvrir la base de donnée en lecture seule
Set bd = OpenDatabase(FichierSource, False, True, "Excel 8.0;HDR=Yes;")

'3 variables = 3 Noms des auteurs.
MaVar = "Luc"
MaVar1 = "Denis"
MaVar2 = "Diane"

'La requête elle-même
Requete = "SELECT SN, Nom From [" & NomFeuille & "$" & _
"]" & vbCrLf & _
"where nom ='" & MaVar & "'" & _
" or nom ='" & MaVar1 & "'" & _
" or nom ='" & MaVar2 & "'" & _
" Order by Nom "

'Exécution de la requête
Set Rst = bd.OpenRecordset(Requete, dbReadOnly)
With Rst
'Si le recordset n'est pas vide
If .EOF = False Then
'Copie les noms des champs vers la plage de destination
For C = 0 To Rst.Fields.Count - 1
Dest.Offset(0, C).Value = Rst.Fields(C).Name
Next
'Copie des données du recordset
Dest.Offset(1, 0).CopyFromRecordset Rst
Else
MsgBox "Aucun enregistrement trouvé."
End If

End With
Rst.Close: Set Rst = Nothing
bd.Close: Set bd = Nothing

End Sub
'--------------------------------------


Salutations!




"Grégory" a écrit dans le message de news:
Bonjour,

Merci de ton attention.
Oui, mes colonnes ont des étiquettes (si étiquette = titre de colonne).

"Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des
conditions pour extraire l'information que tu désires": ???

En ce qui concerne l'intégration dans mon tableau de "l'avis de 3 personnes
différentes sur des articles", je vais au plus simple: je classe les articles
par ordre alphabétique en ligne et j'associe les 3 avis des personnes dans 3
colonnes.

J'espère être plus clair en présentant mon idée de l'algorithme.
Pour commencer, les fichiers que je manipule ont une structure figée: les
colonnes dans lesquelles je vais chercher mes infos seront toujours à la même
place.

1. Je copie de mon fichier de synthèse le nom du premier article.
2. Je recherche dans le fichier de la 1ère personne la chaîne de caractère
correspondant au nom de l'artice.
3. Je récupère la ligne X correspondant à cette occurence.
4. Je sais que l'avis de cette personne se situe toujours dans la colonne Y,
donc je vais chercher le contenu de la cellule (X, Y).
5. Je colle ce contenu dans mon fichier de synthèse.

Je boucle jusqu'à avoir l'avis de tous les articles puis je passe à la
deuxième personne.

Merci de ton aide,

Greg


Bonjour Grégory,

Est-ce que tes champs ont des étiquettes de colonnes ?

Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des conditions pour extraire l'information que tu désires ?

On peut utiliser une requête "comme dans access" sur un fichier excel pour extraire l'information désirée, cela dépend si le
tableau
des données est suffisamment bien organisé pour le faire. Tes informations supplémentaires ne sont pas très concluantes ...Faudra
que tu précises davantage !

Comment tu intègres dans ton tableau "l'avis de 3 personne différentes sur des articles" que tu veux extraire ?


Salutations!



"Grégory" a écrit dans le message de news:

Bonjour,

Mon fichier fermé est en fait un tableau avec plusieurs colonnes et dont les
lignes sont les articles.
La seule colonne qui m'intéresse dans ce cas est celle qui contient les avis
déposés sur les articles.
Mais comme chaque personne classe les articles selon ses préférences, je ne
peux pas me contenter de copier bêtement cette colonne "avis" puisque l'ordre
n'est pas le même pour tout le monde.
Je suis contraint de la copier "avis par avis" en cherchant à chaque fois
l'article (donc la ligne) jugé.

Cette manip est-elle possible sans ouvrir le classeur dont on extrait les
avis?

J'espère que c'est un peu plus clair. Merci d'avance pour l'aide,

Greg


Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:

Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg










Avatar
Grégory
Sympa merci!
Mais je dois avouer que j'ai fini par abandonner pour plusieurs raisons:
- je ne disposais que de très de temps pour réaliser ma macro et je
commençais à passer trop de tps à debugger mon code,
- je suis loin d'être un expert en VB, mais je pense que si on commence à
gérer Excell en base de données, on se trompe peut-être d'outil...!
- j'ai essayé en ouvrant systématiquement les fichiers (sans les afficher
pour autant à l'écran) et le tps d'exécution de ma macro fut diminué par 10!

Merci de ton aide, je me pencherai sur ce code asap,
Greg

"michdenis" wrote:

Bonjour Grégory,

Voici un exemple de requête qu'il est possible de faire ave DAO sur un fichier fermé. Évidemment, tout ceci doit être adapté selon
ton application.

Tu dois insérer la bibliothèque suivante à ton projet :

Fenêtre vbe(visual basic editor) / barre menu / outils / references :
"Microsoft DAO 3.6 objects librairy"

'------------------------------------------------
Sub RequêteExcel()

Dim bd As Database, Rst As Recordset
Dim FichierSource As String, NomFeuille As String
Dim Requete As String, Dest As Range
Dim MaVar As String, MaVar1 As String, MaVar2 As String
Dim C As Integer

'Chemin et fichier source de la base de données.
FichierSource = "C:AtravailDonnées.xls"

'nom de la feuille où se trouve les données
'dans le fichier source
NomFeuille = "Feuil1"

'Cellule de destination où sera copiée
'le résultat de la requête
Set Dest = ThisWorkbook.Worksheets("Feuil1").Range("A1")

'ouvrir la base de donnée en lecture seule
Set bd = OpenDatabase(FichierSource, False, True, "Excel 8.0;HDR=Yes;")

'3 variables = 3 Noms des auteurs.
MaVar = "Luc"
MaVar1 = "Denis"
MaVar2 = "Diane"

'La requête elle-même
Requete = "SELECT SN, Nom From [" & NomFeuille & "$" & _
"]" & vbCrLf & _
"where nom ='" & MaVar & "'" & _
" or nom ='" & MaVar1 & "'" & _
" or nom ='" & MaVar2 & "'" & _
" Order by Nom "

'Exécution de la requête
Set Rst = bd.OpenRecordset(Requete, dbReadOnly)
With Rst
'Si le recordset n'est pas vide
If .EOF = False Then
'Copie les noms des champs vers la plage de destination
For C = 0 To Rst.Fields.Count - 1
Dest.Offset(0, C).Value = Rst.Fields(C).Name
Next
'Copie des données du recordset
Dest.Offset(1, 0).CopyFromRecordset Rst
Else
MsgBox "Aucun enregistrement trouvé."
End If

End With
Rst.Close: Set Rst = Nothing
bd.Close: Set bd = Nothing

End Sub
'--------------------------------------


Salutations!




"Grégory" a écrit dans le message de news:
Bonjour,

Merci de ton attention.
Oui, mes colonnes ont des étiquettes (si étiquette = titre de colonne).

"Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des
conditions pour extraire l'information que tu désires": ???

En ce qui concerne l'intégration dans mon tableau de "l'avis de 3 personnes
différentes sur des articles", je vais au plus simple: je classe les articles
par ordre alphabétique en ligne et j'associe les 3 avis des personnes dans 3
colonnes.

J'espère être plus clair en présentant mon idée de l'algorithme.
Pour commencer, les fichiers que je manipule ont une structure figée: les
colonnes dans lesquelles je vais chercher mes infos seront toujours à la même
place.

1. Je copie de mon fichier de synthèse le nom du premier article.
2. Je recherche dans le fichier de la 1ère personne la chaîne de caractère
correspondant au nom de l'artice.
3. Je récupère la ligne X correspondant à cette occurence.
4. Je sais que l'avis de cette personne se situe toujours dans la colonne Y,
donc je vais chercher le contenu de la cellule (X, Y).
5. Je colle ce contenu dans mon fichier de synthèse.

Je boucle jusqu'à avoir l'avis de tous les articles puis je passe à la
deuxième personne.

Merci de ton aide,

Greg


Bonjour Grégory,

Est-ce que tes champs ont des étiquettes de colonnes ?

Est-ce qu'il y moyen à partir de ton tableau d'établir une ou des conditions pour extraire l'information que tu désires ?

On peut utiliser une requête "comme dans access" sur un fichier excel pour extraire l'information désirée, cela dépend si le
tableau
des données est suffisamment bien organisé pour le faire. Tes informations supplémentaires ne sont pas très concluantes ...Faudra
que tu précises davantage !

Comment tu intègres dans ton tableau "l'avis de 3 personne différentes sur des articles" que tu veux extraire ?


Salutations!



"Grégory" a écrit dans le message de news:

Bonjour,

Mon fichier fermé est en fait un tableau avec plusieurs colonnes et dont les
lignes sont les articles.
La seule colonne qui m'intéresse dans ce cas est celle qui contient les avis
déposés sur les articles.
Mais comme chaque personne classe les articles selon ses préférences, je ne
peux pas me contenter de copier bêtement cette colonne "avis" puisque l'ordre
n'est pas le même pour tout le monde.
Je suis contraint de la copier "avis par avis" en cherchant à chaque fois
l'article (donc la ligne) jugé.

Cette manip est-elle possible sans ouvrir le classeur dont on extrait les
avis?

J'espère que c'est un peu plus clair. Merci d'avance pour l'aide,

Greg


Bonjour Grégory,

Il faudrait que tu sois plus explicite sur l'organisation de tes données dans ton classeur fermé.


Salutations!


"Grégory" a écrit dans le message de news:

Bonjour,

Est-il possible de chercher le contenu d'une cellule dans une feuille d'un
classeur non ouvert?

Pour info, je souhaite regrouper dans un fichier l'avis de 3 personnes
différentes sur des articles, sans ouvrir leur fichier.
J'arrive bien à récupérer les données de la 1ère personne (je copie la liste
des articles + l'avis attribué), mais il me faut ensuite aller chercher
l'avis des deux autres. C'est là que ça se corse puisque chaque personne trie
les articles selon ses critères.
Voici donc comment je compte procéder:
1. Récupération du nom de l'article ds mon fichier de synthèse
2. Recherche de ce nom le fichier (non ouvert)
3. Copie de l'avis dans mon fichier de synthèse.

Merci bcp de votre aide!
Greg