VBA: optimisation de procédure pour copier une cellule

J

Jean

Guest
Bonjour à tous

Encore une fois je fais appel à vous.

Situation: pour chacune des feuilles du fichier Facturation Cartierville.xls je dois copier la cellule H136 vers la cellule H130. Le nombre de feuilles du fichier Facturation Cartierville.xls peut varier (mais il contient un minimun de 150 feuilles).

Problématique: est-ce qu'il existe une façon d'améliorer cette procédure afin de la rendre plus rapide ?

Procédure:
Sub VentesCartierville2()
'Macro pour copier la celule H136 vers la cellule H130 de chacune
'des feuilles du fichier Facturation Cartierville.xls
Dim WBSource As Workbook
Dim Feuille As Integer
Dim RangeH136 As Range
Dim RangeH130 As Range
Set WBSource = Workbooks("Facturation Cartierville.xls")
WBSource.Activate
For Feuille = 1 To Sheets.Count
Set RangeH136 = Worksheets(Feuille).Range("H136")
Set RangeH130 = Worksheets(Feuille).Range("H130")
RangeH136.Copy
RangeH130.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Next
End Sub

Merci de votre aide


Jean
 
R

rusty

Guest
salut,

Je ne comprends pas tout ton pb mais a voir ainsi je ne comprends pas pourquoi tu te prends la tete avec un VBa pour des feuilles d'un meme doc (pas de pb de liaisons dans ce cas) car avec des formules = ou vlookup (h ou v) cela devrait suffire au moins pour tes 150 onglets. Il faut savoir que le code vba pour des instructions simples même si cela permet de se la raconter auprès de son patron n'est pas toujours le passage le plus simple (surtout si vous avez comme moi des pb de compatibilité car les uns et autres travaillent dans le monde sous de environnements différents (je travaille sur du passage de sql vers xl en environnement windows ou unix et c'est pas simple au niveau des macros!!)

Par contre après tu peux faire une macro pour savoir selon le nombre d'onglets supplémentaire (>150) tu faisses un copier/coller du nombre d'onglets a rajouter avec format identique aux précédents onglets..

A savoir si: ces onglets sont issus déjà d'une requete (sql, vba ou autre) ou si c'est toi qui fait une maquette de x onglets..

Infos a complémenter a mon niveau si tu veux faire plus simple
 
J

Jean

Guest
Bonjour Rusty et aux gens du forum

Je te remercie pour tes commentaires.

Cette procédure n'est qu'une des nombreuses (macro) procédures qui sont exécutés sur le fichier.

C'est pourquoi je cherche une façon de les optimiser.

Merci et bonne journée


Jean
 
L

Lord Nelson

Guest
Salut Jean et Rusty,

Voici ma suggestion :

Dim WS As Worksheet
For Each WS In Worksheets
WS.Range("H130") = WS.Range("H136")
WS.Range("H130").NumberFormat = WS.Range("H136").NumberFormat
Next

Ce devrait être plus rapide qu'un copier/coller.

A+
Horatio
 

Discussions similaires

Statistiques des forums

Discussions
312 246
Messages
2 086 578
Membres
103 247
dernier inscrit
bottxok