Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
975 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  (RESOLU) diminution du temps d'execution [VBA EXCEL]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(RESOLU) diminution du temps d'execution [VBA EXCEL]

n°1570655
ingenieurc​esi
Posté le 06-06-2007 à 07:08:39  profilanswer
 

bonjour à tous,
 
voila j'ai fait quelque petits code qui en gros ouvrent des classeurs, copient des données et les mettent dans une feuille du classeur suivismachinesresultats.xls
 
mon probleme est le suivant:
le temps d'execution est long ( pour 2 classeurs ) et je ne veux meme pas imaginer pour une centaine de classeurs.
 
--> connaissez vous des fonctions qui peuvent diminuer le temps d'execution ?
 
j'ai deja utilise application.screenupdating=false
 
je ne pourrais vous repondre quà partir de 17h00
 
merci et bonne journee


Message édité par ingenieurcesi le 09-06-2007 à 17:03:23
mood
Publicité
Posté le 06-06-2007 à 07:08:39  profilanswer
 

n°1570677
eric455
Posté le 06-06-2007 à 09:03:46  profilanswer
 

Bonjour à tous
 
Pas facile sans voir le code, mais  
- supprimes tous les "select"  
- au lieu d'ouvrir les classeurs tu peux peut être récupérer les données dans les fichiers fermés
- combien as tu de cellules à récupérer ?  
- les données sont à disposer sur 1 feuille ou plusieurs ?
 
il nous faudrait un peu plus de matière pour que l'on puisse t'aider efficacement
 
Eric

n°1570714
kiki29
Posté le 06-06-2007 à 09:43:31  profilanswer
 
n°1571142
ingenieurc​esi
Posté le 06-06-2007 à 17:14:26  profilanswer
 

cijoint le fichier à renommer en acceuil.xls
 
http://cjoint.com/?ggrmf2XEVl
 
kiki29 je regarde tes liens  et je te tiens au courant
 
eric455 comment fais tu pour recuperer des donnees dans un fichier fermé ?
 
merci a vous

n°1571145
ingenieurc​esi
Posté le 06-06-2007 à 17:18:05  profilanswer
 

module 2
 
dsl

n°1571301
Paul Hood
Posté le 07-06-2007 à 08:47:13  profilanswer
 

Accèder à une cellule sans ouvrir le fichier
 
Function GetValueWithADO(Classeur$, Feuille$, Cell As Range)
'renvoie la valeur de la cellule Cell de la feuille Feuille du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
   
  'prépare une "base de données" bidon pour la clause SELECT
  '(une entête fictive et une ligne de données)
  Set dummyBase = Cell.Resize(2)
   
  'prépare les commandes ADO et SQL
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & Classeur & ";" & _
                "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
  strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]"
   
  'crée l'objet Recordset
  Set RcdSet = CreateObject("ADODB.Recordset" )
   
  'va chercher l'info
  RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText
   
  'et la renvoie
  GetValueWithADO = Application.Clean(RcdSet(0))
  'autre syntaxe possible
'  GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1))
   
  'nettoyage
  Set RcdSet = Nothing
End Function

n°1572742
ingenieurc​esi
Posté le 09-06-2007 à 17:02:04  profilanswer
 

salut
 
j'ai simplement enlevé les select et ca va beaucoup plus vite. je vous remerci pour votre aide .


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  (RESOLU) diminution du temps d'execution [VBA EXCEL]

 

Sujets relatifs
[RÉSOLU] requête MySQL select prochains évènements[résolu] Problème d'include chez Free mais pas en local
Générer un fichier excel avec menus déroulantséxécution anormale de programme compile VC6
[VBA] [Résolu] Partager des variables entre plusieurs userforminsertion à partir d'un fichier texte dans un fichier excel
[RESOLU] PHP Modification[RESOLU]/[ACCESS]disparition de liste déroulantes sur formulaires
[RESOLU] ACCESS Différence entre une requète externe/interne à ACCESS[Resolu] Ordre du résultat en fonction d'une clause in.
Plus de sujets relatifs à : (RESOLU) diminution du temps d'execution [VBA EXCEL]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR