MAcro Lecture de fichiers excels ADO et valeur WLO object

pedro123456

XLDnaute Junior
Bonjour à tous!

Après quelques tentatives tout suel je bloque encore un tt petit peu sur une macro!

But de la macro : parcourir un répértoire avec que des fichiers excels (C:\Excel)
Lire la valeur d'une checkbox nommée q1c1
Compter le nombre de vrai
Compter le nombre de faux
Afficher les valeurs)

Mon code plante dans la lecture des valeurs!! qqu'un peut il m'aider???? Merci bcp!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Voici mon code pour l'instant!

Dim fso As Object, Dossier As Object
Dim Files As Object, File As Object, VPath As String
Dim nbvrai As integer, nbfauxAs Integer
Dim reponse As String


' Création de l'objet File System Object
Set fso = CreateObject("Scripting.FileSystemObject")

' Créé l'objet Dossier à partir du chemin definit

Set Dossier = fso.GetFolder("C:\Excel")

Set Files = Dossier.Files
' Si aucun fichier dans le dossier, on sort de la procédure
If Files.Count = 0 Then Exit Sub
' Sinon pour chaque fichier
For Each File In Files


if ActiveSheet.OLEObjects("q1c1").Object.Value = "Vrai" then
nbvrai=nbvrai +1
end if

if ActiveSheet.OLEObjects("q1c1").Object.Value = "Faux" then
nbfaux=nbfaux +1
end if
Next
msgbox nbfaux
msgbox nbvrai


End Sub
 

JNP

XLDnaute Barbatruc
Re : MAcro Lecture de fichiers excels ADO et valeur WLO object

Bonjour Pedro1234556 :),
Je vais peut-être dire une connerie, mais pour moi, un checkbox n'est chargé que pendant l'exécution d'une macro, ou durant l'ouverture du fichier s'il s'agit d'une variable publique. Je ne vois pas comment tu peux lire dans un fichier que tu ouvres juste le temps de lire les données une variable de ce type. J'ai tendance à penser qu'il serait mieux que tu stockes ton checkbox dans une cellule à la fermeture du fichier pour pouvoir scanner cette cellule lors de ta macro. Enfin je crois... :rolleyes:
A te lire :cool:
 

pedro123456

XLDnaute Junior
Re : MAcro Lecture de fichiers excels ADO et valeur WLO object

euh aucune idée

Tout ce que je peux dire c'est que dans un fichier activé,

Le code :
ActiveSheet.OLEObjects("q1c1").Object.Value marche

Dans ce cas la, il me faudrait une macro qui ouvre tout les fichiers de mon repertoire prend la valeur du control checkbox avec le code ci dessous de chaque fichier, puis ferme les fichiers!
 
T

THE CAT 2007

Guest
Re : MAcro Lecture de fichiers excels ADO et valeur WLO object

Bonjour à tout le forum,

J'avais récupéré un bout de code, dans un sujet qui parlait de calcul de moyenne, AVEC DES FICHIERS EXCEL NON OUVERTS.

Je joins le code de la boucle de lecture et récup des valeurs (les commentaires sont d'origine et je n'ai pas encore essayé le code) :

For Each File In Files
' Contruit le chemin d'accès
VPath = Dossier.Path & "\" & File.Name
' Récupère la valeur de la cellule "A1" de "Feuil1"
MaVal = GetValueWithADO(VPath, "Feuil1", Cell)

' Si la valeur est différente de ZERO
If MaVal <> 0 Then
' On l'additionne au total
Total = Total + MaVal
' On oncrémente le nombre de valeurs
NbVal = NbVal + 1
End If
Next
 
C

Compte Supprimé 979

Guest
Re : MAcro Lecture de fichiers excels ADO et valeur WLO object

Salut tout le monde :D
Salut Pedro,

Dans ton code tu n'ouvres pas les fichiers qui contiennent le Chekbox :rolleyes:

Essaye,
Code:
[COLOR=#0000ff]Dim fso As Object, Dossier As Object[/COLOR]
[COLOR=#0000ff]Dim Files As Object, File As Object, VPath As String[/COLOR]
[COLOR=#0000ff]Dim nbvrai As integer, nbfauxAs Integer[/COLOR]
[COLOR=#0000ff]Dim reponse As String[/COLOR]
 
[COLOR=seagreen]' Création de l'objet File System Object[/COLOR]
Set fso = CreateObject("Scripting.FileSystemObject")
 
[COLOR=seagreen]' Créé l'objet Dossier à partir du chemin definit[/COLOR]
[COLOR=blue]Set Dossier = fso.GetFolder("C:\Excel")[/COLOR]
 
[COLOR=blue]Set Files = Dossier.Files[/COLOR]
[COLOR=seagreen]' Si aucun fichier dans le dossier, on sort de la procédure[/COLOR]
[COLOR=blue]If Files.Count = 0 Then Exit Sub[/COLOR]
[COLOR=#2e8b57]' Sinon pour chaque fichier[/COLOR]
[COLOR=#2e8b57]' Empèche le rafraichissement d'écran[/COLOR]
[COLOR=red]Application.ScreenUpdating = False[/COLOR]
[COLOR=blue]For Each File In Files[/COLOR]
 [COLOR=red] ' Contruit le chemin d'accès du fichier[/COLOR]
[COLOR=red] VPath = Dossier.Path & "\" & File.Name[/COLOR]
[COLOR=#ff0000] ' Ouvre le classeur[/COLOR]
[COLOR=red] Workbooks.Open vpath[/COLOR]
[COLOR=#ff0000] ' Effectue les tests[/COLOR]
[COLOR=blue] If ActiveSheet.OLEObjects("q1c1").Object.Value = "Vrai" then NbVrai=NbVrai +1[/COLOR]
 
[COLOR=blue] If ActiveSheet.OLEObjects("q1c1").Object.Value = "Faux" then NbFaux = NbFaux +1[/COLOR]
[COLOR=red] ' Ferme le classeur avant de passer au suivant[/COLOR]
[COLOR=blue][COLOR=red] Application.ActiveWorkbook.Close SaveChanges:=xlNo[/COLOR]
Next[/COLOR]
[COLOR=blue]'[/COLOR]
[COLOR=blue][COLOR=#ff0000]Application.ScreenUpdating = True[/COLOR]
'
msgbox nbfaux
msgbox nbvrai[/COLOR]
 
End Sub

Tiens nous au courant ;)
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12