Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Affecter macro a plusieurs lignes

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

exceltony

XLDnaute Nouveau
Bonjour à tous,

Je voudrais affecter ce code à plusieurs lignes de la meme page. En bleu, j'ai recopié le code juste au dessus, en changeant le numero de ligne. mais je dois aller jusqu a la ligne 55, je risque d y passer la nuit. Si pouvez m'aider.

Merci par avance,

Sub ReCalc()
MTime = Time
Application.OnTime MTime + TimeValue("00:00:01"), "ReCalc" ' temps à ajuster
If Worksheets(1).Cells(1, 11).Value > 0 Then
Worksheets(1).Cells(1, 11).Value = Worksheets(1).Cells(1, 11).Value - 1
Else
Worksheets(1).Cells(1, 11).Value = Worksheets(2).Cells(1, 5).Value
Worksheets(2).Cells(4, 5).Value = Worksheets(2).Cells(4, 4).Value
Randomize
Worksheets(2).Cells(4, 4).Value = Rnd * (Worksheets(2).Cells(4, 3).Value - Worksheets(2).Cells(4, 2).Value) + Worksheets(2).Cells(4, 2).Value
Worksheets(2).Cells(5, 5).Value = Worksheets(2).Cells(5, 4).Value
Randomize
Worksheets(2).Cells(5, 4).Value = Rnd * (Worksheets(2).Cells(5, 3).Value - Worksheets(2).Cells(5, 2).Value) + Worksheets(2).Cells(5, 2).Value

End If
End Sub
 
Re : Affecter macro a plusieurs lignes

Peut être comme ça :
VB:
Option Explicit
Dim Réexécuter As Boolean

Sub ReCalc()
Dim TV() As Variant, L As Long
If Worksheets(1).Cells(1, 11).Value > 0 Then
   Worksheets(1).Cells(1, 11).Value = Worksheets(1).Cells(1, 11).Value - 1
Else
   Worksheets(1).Cells(1, 11).Value = Worksheets(2).Cells(1, 5).Value
   TV = Worksheets(2).[B4:E55].Value
   Randomize
   For L = 1 To 52: TV(L, 4) = TV(L, 3): TV(L, 3) = Rnd * (TV(L, 2) - TV(L, 1)) + TV(L, 1): Next L
   Worksheets(2).[B4:E55].Value = TV
   End If
If Réexécuter Then Application.OnTime Now + TimeValue("00:00:01"), "ReCalc" ' temps à ajuster
End Sub

Sub Bouton()
Réexécuter = Not Réexécuter
If Réexécuter Then ReCalc
End Sub
Mais il vaudrait mieux joindre un classeur. Désagréable d'être obligé de créer un nouveau classeur et de ne pas voir sur quoi ça va porter pour pouvoir tester convenablement …
 
- 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

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
187
Réponses
3
Affichages
300
Réponses
0
Affichages
471
Réponses
9
Affichages
898
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…