• Initiateur de la discussion Initiateur de la discussion zetma
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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]
 

Pièces jointes

Bonjour Zetma,

J'ai regardé tes fichiers. Avant d'aller plus loin, je voudrais essayer de comprendre ce que tu veux faire: Tu veux comparer 2 feuille en fonction d'un code article. Si les codes sont présents dans les 2, tu choisis la vente de la feuille1 de FOOD sinon, et c'est là que je ne saisis pas ce qui doit se passer si la macro ne trouve pas de codearticle équivalent dans la feuille control....

Peux-tu essayer de préciser l'objectif, car c'est vrai que le moyen que tu as choisis ( 2 boucles imbriquées) ne semble pas tout à fait adapté car il oblige à beaucoup de calculs...

A +
 
Salut,

Tu as bien compris le principe du programme.

L'idée est bien de comparer les codes des 2 feuilles et de recupérer la vente associée au code pour l'inclure dans la feuille 2.

Si le programme ne trouve pas le code sur l'une des 2 feuilles il ne se passe rien mais dans le developpement de la macro je souhaiterai qu'il inclue le code, l'article et la vente dans le classeur 2.

Je pense qu'il doit y avoir plus simple comme macro... mais la je bloque 🙁

Merci pour ton aide

A+ Zetma
 
bonjour Zetma,Luki
j'ai aussi regardé tes fichiers,toute ces colonnes vides?
tu dois monter tes fichiers en base de données,tu bénéficiera d'un tas d'avantages.Tu dois changer tes habitudes.informatique=ordre et méthodes.j'ai 67 ans, donc je sais de quoi je parle
j'ai corrigé ta macro
à+ :unsure: [file name=FOOD_20050804142325.zip size=32427]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FOOD_20050804142325.zip[/file]
 

Pièces jointes

Bonjour

Si vraiment tu veux accélérer ta macro il faut que tu changes ta façon de faire

Au lieu de comparer des cellules comme tu fais il faut que tu passes par des tableaux de variables et il n'y a pas photo sur la rapidité

Regarde surtout les derniers posts de ce fil

Lien supprimé
 
Salut bebere,kiki et pacal

La macro execute bien la tache demandé... c'est parfait.


Juste un défaut, il est impératif de conserver l'ordre du classeur FOOD que je t'ai envoyé.

Est-ce possible ?
🙂 🙂 🙂 🙂 🙂 🙂 [file name=FOOD_20050805100905.zip size=31222]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FOOD_20050805100905.zip[/file]
 

Pièces jointes

Salut bebere,kiki et pacal

La macro execute bien la tache demandé... c'est parfait.


Juste un défaut, il est impératif de conserver l'ordre du classeur FOOD que je t'ai envoyé.

Est-ce possible ?
🙂 🙂 🙂 🙂 [file name=FOOD_20050805101021.zip size=31222]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FOOD_20050805101021.zip[/file]
 

Pièces jointes

Salut,


Décidément, tu es le meilleur 🙂 🙂 🙂

Félicittion à toi et encore merci.

Si éventuellement tu es intéréssé par un petit travail de programmation.

Fait le moi savoir

Encore merci et à bientôt

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
729
Réponses
4
Affichages
586
Réponses
2
Affichages
587
Réponses
5
Affichages
687
Retour