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

Microsoft 365 Diff entre Array et Formule

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

iliess

XLDnaute Occasionnel
bonjour
j'ai essaye de crée une clé apartir d'une plage Arr
j'ai essayé deux méthode la premiere par Array et la deuxième par formule
j'ai constaté que la macro par formule et rapide que Array

Svp comment je peux accélère la méthode Array
 
Dernière modification par un modérateur:
Re
j'ai modifié ta Version avec Formule et ca semble bien plus rapide à Voir !
VB:
Sub Traitement_par_formule()
T = Timer
With Application
        '.Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
End With

Dim ShRaw As Worksheet
Dim LShRaw As Long
Dim Brr As Variant

'=============================================================
Set ShRaw = ThisWorkbook.Worksheets("Feuil1")
LShRaw = ShRaw.Cells(ShRaw.Rows.Count, 1).End(xlUp).Row
Brr = ShRaw.Range("A2:H" & LShRaw)
'==================================================================================================================================
With ShRaw
      If .FilterMode Then .ShowAllData
      .Cells(1, "I") = "Clé"
      .Cells(2, "I").Resize(LShRaw) = "=""445""&""_""&A2&""_""&C2&""_""&D2&""_""&F2&""_""&G2"
      .Cells(1, "I").Resize(LShRaw) = .Cells(1, "i").Resize(LShRaw).Value
End With

With Application
        '.Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
End With
MsgBox Timer - T

End Sub
Jean marie
 
VB:
Sub Traitement_par_Array_plus()
t = Timer

With Application
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
End With

Dim ShRaw As Worksheet
Dim LShRaw As Long
Dim Brr As Variant, A As Variant
'=============================================================
Set ShRaw = ThisWorkbook.Worksheets("Raw")
LShRaw = ShRaw.Cells(ShRaw.Rows.Count, 1).End(xlUp).row
Brr = ShRaw.Range("A2:H" & LShRaw)
'==================================================================================================================================
ReDim A(1 To 1, 1 To UBound(Brr))
For i = LBound(Brr) To UBound(Brr)
A(1, i) = "445" & "_" & Brr(i, 1) & "_" & Brr(i, 3) & "_" & Brr(i, 4) & "_" & Brr(i, 6) & "_" & Brr(i, 7)
Next i
Range("i2:i" & LShRaw).Value = A

With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
End With
MsgBox Timer - t

End Sub


Voici une solution plus rapide
 
- 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

Réponses
8
Affichages
172
Réponses
40
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…