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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [résolu]Problème avec ExecuteExcel4Macro....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Problème avec ExecuteExcel4Macro....

n°1512238
skystef2
Posté le 08-02-2007 à 14:51:39  profilanswer
 

Bonjour,
 
Je dois réaliser l'application suivante : j'ai une macro excel qui doit balayer une plage de lignes et de colonnes dans d'autres fichiers Excel fermés, stocké sur un serveur (serveur local).  
 
En adaptant une solution du site excellabo.net, j'utilise la fonction ExecuteExcel4Macro comme suit :
 

Code :
  1. Private Function GetValue(Path, file, Sheet, Ref)
  2.   Dim Arg As String
  3.   'Vérie l'existence du fichier, ajoute les séparateurs manquants
  4.   If Right(Path, 1) <> "\" Then Path = Path & "\"
  5.   If Dir(Path & file) = "" Then
  6.     GetValue = "File Not Found"
  7.     Exit Function
  8.   End If
  9.   'Crée l'argument '"D:\mesdocuments\loisirs\[vacances.xls]Méribel'!R4C3"
  10.   Arg = "'" & Path & "[" & file & "]" & Sheet & "'!" & Range(Ref) _
  11.   .Range("A1" ).Address(, , xlR1C1)
  12.   'Exécute la macro XLM
  13.   GetValue = ExecuteExcel4Macro(Arg)
  14. End Function
  15. Sub GetValue_TMA_Proj(Path As String, dossier As Folder, semaine As String)
  16. Dim P As String, f As String, S As String, A As String, R As Byte
  17. Dim C As Byte, file As file
  18. Dim Count As Integer
  19. Count = 0
  20. Dim TypeI As String
  21. Dim formation, ConcComm, InterChantiers, TIAC, maladie, congesRtt, congesRttHc, prsnf As Double
  22. formation = 0
  23. ConcComm = 0
  24. InterChantiers = 0
  25. TIAC = 0
  26. congesRtt = 0
  27. maladie = 0
  28. congesRttHc = 0
  29. prsnf = 0
  30. '  P = FinalPath
  31. ' F = "Activité-MDE-2007-01.xls"
  32.   'S = "Activité Mois"
  33. ' Application.ScreenUpdating = False
  34. ' For R = 46 To 46
  35.   '  For C = 6 To 11
  36.   '    A = Cells(R, C).Address
  37.   '    Cells(R, C) = GetValue(P, F, S, A)
  38.   '    Count = Count + GetValue(P, F, S, A)
  39. '   Next C
  40. '  Next R
  41. ' MsgBox (Count)
  42.   'Application.ScreenUpdating = True '
  43.  
  44.   For Each file In dossier.Files
  45.   f = file.Name
  46.   Debug.Print f
  47.     For R = 33 To 45
  48.         For C = 7 To 10
  49.             A = Cells(R, C).Address 'adresse de la celulle à analyser
  50.             TypeI = Cells(R, 3).Address ' adresse type de code imputation'
  51.             typeImput = GetValue(Path, f, "Activité mois", TypeI)
  52.            
  53.             Select Case typeImput
  54.                 Case "Formation externe", "Formation interne", "Form. co_inv. employé"
  55.                     formation = formation + GetValue(Path, f, "Activité mois", A)
  56.                 Case "Maladie", "Maternité"
  57.                     maladie = maladie + GetValue(Path, f, "Activité mois", A)
  58.                 Case "Absences non payées", "Récupération", "Repos compensateur", "Visite médicale", "Congé non payé", "Récup Heures Excédent"
  59.                     congesRttHc = congesRttHc + GetValue(Path, f, "Activité mois", A)
  60.                 Case Else
  61.                     congesRtt = congesRtt + GetValue(Path, f, "Activité mois", A)
  62.                End Select
  63.            
  64.            
  65.            ' Cells(R, C) = GetValue(Path, file, "Activité mois", A) 'valeur numérique à partir de la colone des imput
  66.    
  67.         Next C
  68.     Next R
  69. Next
  70.     MsgBox (formation & congesRttHc & congesRtt & formation & maladie)
  71.    
  72.  
  73. End Sub


 
Alors c'est génial, ça fonctionne, mais c'est abominablement lent, si lent que ça plante quand j'agrandis le nombres de colonnes à analyser? Par contre si les fichiers Excel sont ouverts, c'est quasi instantannée. Le soucis c'est que les fichiers Excel seront fermés et qu'il y en aura une bonne vinghtaine à analyser. Je n'arrive pas à trouver d'autres solutions que ExecuteExcel4Macro... J'ai placé ma macro sur le serveur mais çà ne change rien : ça rame même quand il n'y a qu'une colone à analyser.
 
Avez-vous des solutions ?  [:whyme]


Message édité par skystef2 le 08-02-2007 à 17:11:18
mood
Publicité
Posté le 08-02-2007 à 14:51:39  profilanswer
 

n°1512265
seniorpapo​u
Posté le 08-02-2007 à 15:35:43  profilanswer
 

Bonjour,
si le traitement est plus rapide en les ouvrant, pourquoi ne pas les ouvrir? et les refermer tout de suite après récupération des infos?
Cordialement

n°1512268
seniorpapo​u
Posté le 08-02-2007 à 15:39:57  profilanswer
 

re,  
j'avais ecrit quelque chose à cette adresse
http://forum.hardware.fr/hfr/Progr [...] m#t1508812

n°1512276
skystef2
Posté le 08-02-2007 à 15:49:53  profilanswer
 

C'est une solution, mais comment les ouvrir de façon réduite dans la barre des tâches ou de façon à ce que l'utilisateur ne les vois pas ?

n°1512286
seniorpapo​u
Posté le 08-02-2007 à 16:01:05  profilanswer
 

Application.ScreenUpdating = False  
 
..
..
..
Application.ScreenUpdating = true

n°1512296
skystef2
Posté le 08-02-2007 à 16:30:32  profilanswer
 

seniorpapou a écrit :

Application.ScreenUpdating = False  
 
..
..
..
Application.ScreenUpdating = true


 
 
Merci !  :jap:

n°1512512
kiki29
Posté le 09-02-2007 à 11:55:38  profilanswer
 

Voir post du 15-05-2006 à 21:13:49  http://forum.hardware.fr/hardwaref [...] 0232-1.htm
ou http://forum.hardware.fr/hardwaref [...] 2780-1.htm


Message édité par kiki29 le 09-02-2007 à 12:05:06

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

  [résolu]Problème avec ExecuteExcel4Macro....

 

Sujets relatifs
[CSS/JSP] Pb d'accès au style CSS via page JSP [Resolu][VB.NET] Windows Media Player sur PDA [RESOLU]
[Réglé] Problème Regex avec c/c d'un tableauProblème très simple mais irésolu
problème d'écriture dans la bdd avec un formulaireExcel -> Word : Problème de saut de ligne/page lors d'une fusion
Problème de connexion avec oracle 10g express edition[RESOLU] Requete avec la date la plus proche de today
[RESOLU]Problème execution index.html 
Plus de sujets relatifs à : [résolu]Problème avec ExecuteExcel4Macro....


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