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

Contenu cellule fichier sans l'ouvrir

5 réponses
Avatar
Bernard Flavignard
Bonjour,
En VBA je souhaiterais effectuer un test
For i = 1 to 200
If "T:\Guidon-chalettois\licences\2009\2009-12-25-licencies-guidon.xls"
dans la feuille "Licenciés" et pour la cellule Ai, la valeur est "E3" alors
....
.....
Ceci sans ouvrir le fichier en question
La syntaxe de le ligne du test me pose problème.
J'ai bien trouvé de l'aide sur excelabo, mais je ne parviens pas à mettre
ceci en forme correctement.
Merci à celle ou celui qui pourra m'aider.
Cordialement
--
Bernard Flavignard
www.guidonchalettois.fr
www.hutchinsonopentour.fr
__o
_`\<,_
( )/ ( )

5 réponses

Avatar
JB
Bonjour,

Utiliser ADO

http://boisgontierjacques.free.fr/pages_site/ado.htm

JB
http://boisgontierjacques.free.fr/On 25 déc, 22:56, "Bernard
Flavignard" <be.flavi-chez-orange.fr> wrote:
Bonjour,
En VBA je souhaiterais effectuer un test
For i = 1 to 200
    If  "T:Guidon-chalettoislicences20092009-12-25-licencies-gu idon.xls"
dans la feuille "Licenciés" et pour la cellule Ai, la valeur est "E3" a lors
....
.....
Ceci sans ouvrir le fichier en question
La syntaxe de le ligne du test me pose problème.
J'ai bien trouvé de l'aide sur excelabo, mais je ne parviens pas à me ttre
ceci en forme correctement.
Merci à celle ou celui qui pourra m'aider.
Cordialement
--
Bernard Flavignardwww.guidonchalettois.frwww.hutchinsonopentour.fr
     __o
  _`<,_
(   )/ (   )


Avatar
Caetera
Bernard Flavignard" <be.flavi-chez-orange.fr> a écrit dans le message de news:
4b35e8dd$0$903$
J'avais oublié de dire que "E3" était en fait une chaine de caractères et non
la référence à une cellule.
Et si je met
If [IV65536] = "E1" Then
J'ai bien entendu une incompatibilité de type.



*********************
Si tu es bien sur la feuille contenant [IV65536] au moment de l'exécution, je ne
vois aucune raison (de principe) à une erreur !
En exécutant pas à pas (F8) vérifie bien que [IV65536] retourne les différentes
valeurs de la plage (fermée) à parcourir
Autre chose à vérifier : l'exacte syntaxe du chemin d'accès
............

Etc
Avatar
Caetera
>Finalement j'ai trouvé ce que je souhaitais ou presque.
A chaque fois que mamacro passe sur cette condition, j'ai une boite de dialogue
me demandant de Mettre à jour les valeurs de mon fichier.
Comment ne pas avoir cette boite, qui bien entendu bloque la macro.



***************************

application.DisplayAlerts = false
.....les instructions intermédiaires
application.DisplayAlerts = True

Etc
Avatar
Bernard Flavignard
Merci de m'aider.
Pour le message d'alerte c'est Ok.
Dans le classeur de la macro,
Pour i = 25, voici le contenu de la cellule IV65536
='T:Guidon-chalettoislicences2009[2009-12-25-licencies-guidon.xls]Licenciés'!$A$25
et ce qu'elle affiche
#REF!

--
Bernard Flavignard
www.guidonchalettois.fr
www.hutchinsonopentour.fr
__o
_`<,_
( )/ ( )

"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:

>Finalement j'ai trouvé ce que je souhaitais ou presque.
A chaque fois que mamacro passe sur cette condition, j'ai une boite de
dialogue me demandant de Mettre à jour les valeurs de mon fichier.
Comment ne pas avoir cette boite, qui bien entendu bloque la macro.



***************************

application.DisplayAlerts = false
.....les instructions intermédiaires
application.DisplayAlerts = True

Etc



Avatar
Bernard Flavignard
Bonjour,
Comme d'habitude, inutile de s'entêter, j'ai laissé reposer tout ceci en
allant faire quelques courses.
Au retour j'ai repirs ça calmement et tout fonctionne.
Un grand merci à vous 2.
Encore une petite option, plutôt que de mettre le résultat dans la dernière
cellule de ma feuille active, pourrais-je le mettre dans une variable VBA?
Voici mon code dans lequel je paramètre le répertoire et le nom du fichier
excel, c'est plus souple.

Sub remplir_bordereau()
'Choisir le fichier des licenciés à lire
With Feuille1.CommonDialog1
'.CancelError = True
.InitDir = "T:Guidon-chalettoislicences"
'masquer la zone lecture seule et le fichier doit exister
.Flags = cdlOFNHideReadOnly + cdlOFNFileMustExist
'selection multiple possible et aspect Explorateur windows
'.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer
.DialogTitle = "Fichier des licenciés .XLS"
'mise à blanc de la zone de saisie
.Filename = ""
.Filter = "Fichiers Excel (*.xls)|*.xls"
.ShowOpen
End With
Application.DisplayAlerts = False
nom_complet_fichier = Feuille1.CommonDialog1.Filename
nom_fichier = Feuille1.CommonDialog1.FileTitle
nom_repertoire = Mid$(Feuille1.CommonDialog1.Filename, 1,
Len(Feuille1.CommonDialog1.Filename) -
Len(Feuille1.CommonDialog1.FileTitle))
For i = 1 To 200
[IV65536] = "='" & nom_repertoire & "[" & nom_fichier & "]" &
"Licenciés" & "'!R" & i & "C1"
If [IV65536] = "E3" Then
MsgBox "Ok"
End If
Next
Application.DisplayAlerts = True
Exit Sub

Je préfèrerais écrire
ma_variable = "='" & nom_repertoire & "[" & nom_fichier & "]" &
"Licenciés" & "'!R" & i & "C1"
if ma_varible = "E3" then
......
Cordialement
--
Bernard Flavignard
www.guidonchalettois.fr
www.hutchinsonopentour.fr
__o
_`<,_
( )/ ( )

"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de news:

>Finalement j'ai trouvé ce que je souhaitais ou presque.
A chaque fois que mamacro passe sur cette condition, j'ai une boite de
dialogue me demandant de Mettre à jour les valeurs de mon fichier.
Comment ne pas avoir cette boite, qui bien entendu bloque la macro.



***************************

application.DisplayAlerts = false
.....les instructions intermédiaires
application.DisplayAlerts = True

Etc