Z
zetma
Guest
Salut le forum,
Eh oui c'est encore moi Zetma la mazette sous Excel 🙂
Mon problème est le suivant:
Comment accelerer la macro, sachant qu'elle met entre 30 et 50 seconde suivant le fichier pour la mise à jour?
Voici le code et le fichier en pièce jointe.
A= 🙂 🙂 🙂
Sub gestion()
'
' gestion Macro
' Macro enregistrée le 21/07/2005 par DOS SANTOS Joaquim
'
' Touche de raccourci du clavier: Ctrl+m
'
Application.Goto Reference:='gestion'
'Déclaration des variables globales
Dim app2Excel As Excel.Application 'Application Excel
Dim Pcontrol As Excel.Workbook 'Classeur Excel
Dim PcontrolSheet As Excel.Worksheet 'Feuille Excel
Dim Plagecodecommand As Range
Dim PlagecodePcontrol As Range
Dim PlageventePcontrol As Range
Dim Plageventecommand As Range
'Ouverture de l'application
Set app2Excel = CreateObject('Excel.Application')
'Ouverture d'un fichier Excel
Set Pcontrol = app2Excel.Workbooks.Open('C:\\Documents and Settings\\Zimour.TOSMONOTE\\Bureau\\marge\\PControl.xls')
'PcontrolShhet correspond à la première feuille du fichier Pcontrol.xls
Set PcontrolSheet = Pcontrol.Worksheets(1)
Set Sheet = ActiveWorkbook.ActiveSheet
'Plagecode définit les plages contentant les codes des marchandises dans les 2 feuilles de calcul
Set Plagecodecommand = ActiveSheet.Range('C11:C443')
Set Plageventecommand = ActiveSheet.Range('I11:I443')
Set PlagecodePcontrol = PcontrolSheet.Range('A10:A327')
Set PlageventePcontrol = PcontrolSheet.Range('G10:G327')
'Déclaration des variables locales
Dim ii As Integer
Dim jj As Integer
Dim Vente As Single
Dim codePcourant As Integer
Dim codeCcourant As Integer
Dim indicecodePcontrol As Integer
Dim longueur As Integer
For ii = 1 To 432
codeCcourant = Plagecodecommand(ii)
For jj = 1 To 317
codePcourant = PlagecodePcontrol(jj)
If codeCcourant = codePcourant Then Plageventecommand(ii) = PlageventePcontrol(jj)
Next jj
Next ii
Pcontrol.Close
End Sub
[file name=PControl_20050804102153.zip size=21150]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PControl_20050804102153.zip[/file]
Eh oui c'est encore moi Zetma la mazette sous Excel 🙂
Mon problème est le suivant:
Comment accelerer la macro, sachant qu'elle met entre 30 et 50 seconde suivant le fichier pour la mise à jour?
Voici le code et le fichier en pièce jointe.
A= 🙂 🙂 🙂
Sub gestion()
'
' gestion Macro
' Macro enregistrée le 21/07/2005 par DOS SANTOS Joaquim
'
' Touche de raccourci du clavier: Ctrl+m
'
Application.Goto Reference:='gestion'
'Déclaration des variables globales
Dim app2Excel As Excel.Application 'Application Excel
Dim Pcontrol As Excel.Workbook 'Classeur Excel
Dim PcontrolSheet As Excel.Worksheet 'Feuille Excel
Dim Plagecodecommand As Range
Dim PlagecodePcontrol As Range
Dim PlageventePcontrol As Range
Dim Plageventecommand As Range
'Ouverture de l'application
Set app2Excel = CreateObject('Excel.Application')
'Ouverture d'un fichier Excel
Set Pcontrol = app2Excel.Workbooks.Open('C:\\Documents and Settings\\Zimour.TOSMONOTE\\Bureau\\marge\\PControl.xls')
'PcontrolShhet correspond à la première feuille du fichier Pcontrol.xls
Set PcontrolSheet = Pcontrol.Worksheets(1)
Set Sheet = ActiveWorkbook.ActiveSheet
'Plagecode définit les plages contentant les codes des marchandises dans les 2 feuilles de calcul
Set Plagecodecommand = ActiveSheet.Range('C11:C443')
Set Plageventecommand = ActiveSheet.Range('I11:I443')
Set PlagecodePcontrol = PcontrolSheet.Range('A10:A327')
Set PlageventePcontrol = PcontrolSheet.Range('G10:G327')
'Déclaration des variables locales
Dim ii As Integer
Dim jj As Integer
Dim Vente As Single
Dim codePcourant As Integer
Dim codeCcourant As Integer
Dim indicecodePcontrol As Integer
Dim longueur As Integer
For ii = 1 To 432
codeCcourant = Plagecodecommand(ii)
For jj = 1 To 317
codePcourant = PlagecodePcontrol(jj)
If codeCcourant = codePcourant Then Plageventecommand(ii) = PlageventePcontrol(jj)
Next jj
Next ii
Pcontrol.Close
End Sub
[file name=PControl_20050804102153.zip size=21150]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PControl_20050804102153.zip[/file]