VBA: optimisation de procédure pour copier une cellule

  • Initiateur de la discussion Initiateur de la discussion Jean
  • 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 !

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
 
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
 
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
 
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
 
- 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
9
Affichages
367
Réponses
3
Affichages
485
Réponses
3
Affichages
518
Réponses
12
Affichages
874
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
5
Affichages
379
Retour