Probleme Set Object et ScreenUpdating Macro

flosauveur69

XLDnaute Occasionnel
Bonjour a tous,

Tout d`abord je vous explique le but de ma macro pour ensuite vous expliquer un problème surement bête mais que je n`arrive à résoudre,

Macro doit ouvrir chaque fichier de 2 répertoires, et copier une plage de cellules. Le classeur est ouvert si il n`a jamais été ouvert et si son datelastmodified est compris entre 2 dates.

Le problème c`est que quand je compile, j`ai un message d`erreur Object Required
Second problème, la macro ouvre chaque fichier en bas de l`écran avant de copier les données ce qu`elle ne devra pas faire grâce au Application.ScreenUpdating = False


Merci de votre aide, je mets mon fichier en PJ, la macro est Public Sub cmdRecupere_Click() en feuil1
 

Pièces jointes

  • test.zip
    354.1 KB · Affichages: 44
  • test.zip
    354.1 KB · Affichages: 46
  • test.zip
    354.1 KB · Affichages: 42

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

bonjour,

je ne sais pas si les tests sont restés idem depuis le dernier fichier joint !? si oui ...
il faut rajouter ceci > If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed") Then

Code:
' If the name of the workbook doesnt exists in column C
If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed") _
And (Fichier.DateLastModified >= DatMin And Fichier.DateLastModified <= DatMax) _
And strFile <> strWB _
And Worksheets("Calcul2").Columns("C").Find(strFile, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
 

Gorfael

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

Salut flosauveur69 et le forum
je voudrais rajouter une condition à cette macro, je voudrais qu'elle ne m'ouvre que les fichiers dont le nom commence par "passed" ou "failed", j'insiste sur le mot commence car j'y arrive si le nom du fichier est "passed" ou "failed" mais pas commence.
Pour ce genre de problème, il faut changer d'opérateur :
="AA" => ne sera vrai que AA
Like "AA*" => sera vrai AA, AA1, AAg, etc...
regarde dans l'aide VBA, like offre d'autres possibilités.
A+
 

flosauveur69

XLDnaute Occasionnel
Re : Probleme Set Object et ScreenUpdating Macro

bonjour,

je ne sais pas si les tests sont restés idem depuis le dernier fichier joint !? si oui ...
il faut rajouter ceci > If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed") Then

Code:
' If the name of the workbook doesnt exists in column C
If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed") _
And (Fichier.DateLastModified >= DatMin And Fichier.DateLastModified <= DatMax) _
And strFile <> strWB _
And Worksheets("Calcul2").Columns("C").Find(strFile, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then


Merci ça fonctionne, je voulais rajouter commence par un 3eme mot en rajoutant un Or mais cela ne fonctionne pas, qu`est-ce que j`ai loupé ?
If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed") Or LCase(Left(Fichier.Name, 6)) = "termin") _
 

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re

tu as un ) en trop ici > = "failed")

reprends ceci:
If (LCase(Left(Fichier.Name, 6)) = "passed" Or LCase(Left(Fichier.Name, 6)) = "failed" Or LCase(Left(Fichier.Name, 6)) = "termin") _
 

flosauveur69

XLDnaute Occasionnel
Re : Probleme Set Object et ScreenUpdating Macro

Oups le boulet, merci.

Sinon vous n'auriez pas une idée d'amélioration pour cette macro, pour l'accélérer un peu?
Car là elle ouvre chaque fichier Excel, copie les données et le ferme. Une fois que cela a été fait elle récupère les infos à partir des donneés copiées.
 

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re:

le fichier modif1 AVEC chargement des Fichiers
j'ai modifier et raccourci le code un maximum dans Feuil2 et Module1
faire essai si ok !? car perso je ne peux pas !

le fichier modif2 SANS chargement des Fichiers !!!
il est possible de lire des données dans des fichiers sans les ouvrir avec ExecuteExcel4Macro

par contre je ne connais pas le nom de ta feuille ici > Worksheets(1)
Workbooks(strFile).Worksheets(1).Range("A11:C28").Copy 'Datas copy

il faut le nom de cette feuille ! j’ai mis "Feuil1"
à toi de voir pour modifier ici dans Public Sub cmdRecupere_Click() à la ligne code no 44
M$ = "'" & DirBase & "[" & strFile & "]" & "Feuil1" & "'!"

respecter ce format impérativement !!!
 

Pièces jointes

  • Copy of KPI BT2 test2 modif1.zip
    408.5 KB · Affichages: 26
  • Copy of KPI BT2 test2 modif2.zip
    409.9 KB · Affichages: 31
  • Copy of KPI BT2 test2 modif2.zip
    409.9 KB · Affichages: 22
  • Copy of KPI BT2 test2 modif2.zip
    409.9 KB · Affichages: 26
Dernière édition:

flosauveur69

XLDnaute Occasionnel
Re : Probleme Set Object et ScreenUpdating Macro

Merci beaucoup, pour la modif2 juste un erreur au lancement, une erreur 400 mais j`ai enleve le return apres la loop et ca fonctionne, est-ce une bonne idee?

De plus pour le nom de la feuille, en fait il change pour chaque classeur ouvert c`est pour cela qu`il y avait Worksheets(1)
Comment faire du coup?
 

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re

d'abord pour le return ! ERREUR GRAVE !
c'est un appel par Gosub donc il faut impérativement le return !

quand tu as eu l'erreur il aurait fallu faire débogage pour voir sur quelle ligne ça plante !
est-ce que la version modif1 fonctionnne ?

pour le nom de la feuille je vais voir comment arranger cela !?
 

flosauveur69

XLDnaute Occasionnel
Re : Probleme Set Object et ScreenUpdating Macro

la version 1 fonctionne parfaitement, bien joué! mais l’exécution n'est pas plus rapide que ma macro actuelle, je vais cependant quand même l'utiliser car le code est beaucoup plus simple; le top ça serait arriver à faire fonctionner la macro 2 qui sera bien plus rapide si elle n'ouvre pas chaque fichier.

J'avais fait le débogage et aucune ligne ne plantait jusqu'à la fin de la loop donc je me suis dit que c'était le return puisque ça ne plantait plus en l'enlevant mais je n'ai pas pu réellement tester car il y a le problème du nom de la feuille,

merci pour ta future aide vraiment!
 

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re

une autre façon de faire que j'utilise pour la première fois !
avec un grand merci à JB(Boisgontier) car c'est sur une de ses sources que j'ai adapté !
ADODB.Connection

j'ai fais des essais sur mes fichiers et ça marche !

REM importante ! une fois chargé ...
voir côté Editeur Visual et Clic sur la barre en haut [Outils]
sélectionner > Références...
rechercher et cocher > Microsoft ActiveX DataObjects 2.0 library

JB dit Microsoft ActiveX DataObjects mais ne précise pas laquelle !?
chez moi avec celle-ci ça fonctionne
 

Pièces jointes

  • Copy of KPI BT2 test2 modif3.zip
    410.4 KB · Affichages: 21
  • Copy of KPI BT2 test2 modif3.zip
    410.4 KB · Affichages: 23
  • Copy of KPI BT2 test2 modif3.zip
    410.4 KB · Affichages: 23
Dernière édition:

flosauveur69

XLDnaute Occasionnel

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re

comprends pas ! car j'ai essayé sous 2003 et 2007 suis sous xp et c'est ok !?
j'ai coché Microsoft ActiveX DataObjects 2.8 library
si problème de ce côté, tu coches la version la plus récente !?
sinon on demandera de l'aide sur le forum !

EDIT: ne surtout rien modifier sur le code ! ce n'est pas lui qui est en cause !

tu es sous quelle version excel et win !?
 

Pièces jointes

  • Copy of KPI BT2 test2 modif3.zip
    410.1 KB · Affichages: 17
  • Copy of KPI BT2 test2 modif3.zip
    410.1 KB · Affichages: 20
  • Copy of KPI BT2 test2 modif3.zip
    410.1 KB · Affichages: 17
Dernière édition:

flosauveur69

XLDnaute Occasionnel
Re : Probleme Set Object et ScreenUpdating Macro

Re,

j`ai pas modifié le code et j`ai excel 2010 sur un PC US et j`ai aussi essayé Microsoft ActiveX DataObjects 2.8 library et rien n`y fait. Je vais essayer sur 2007 et sur PC FR mais cela doit fonctionner sur ce PC US.
 

Roland_M

XLDnaute Barbatruc
Re : Probleme Set Object et ScreenUpdating Macro

re

faire un essai tout simple avec ce petit classeur qui permet cela
avec une petite routine elle aussi toute simple !?

si d'autres pouvaient faire cet essai et nous dire quoi, ce serait sympa !
 

Pièces jointes

  • Essai_ADO.xls
    38.5 KB · Affichages: 38
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 017
dernier inscrit
annboi19