XL 2016 optimisation d'un code vba (array)

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

Juliette_13

XLDnaute Nouveau
Bonjour a tous,

Je n'arrive pas a optimiser mon code,
Le but du code est de mettre en feuille 1 la date le prénom et la dernière lettre de la colonne 3 de la feuille 2.
Si le prénom est Lola les données sont mises en colonne F:H, si le prénom est Quentin les données sont mises en colonnes J:L, ...

Connaissez-vous des cours d'optimisation?

Merci d'avance!
 

Pièces jointes

Bonsoir.
En activant la référence Microsoft Scripting Runtime :
VB:
Option Explicit
Sub Données()
   Dim TDon(), Dico As New Dictionary, L As Long, TRés()
   With Sheets(2).Range("A1"): TDon = .Offset(, 2).Resize(.End(xlDown).Row).Value: End With
   For L = 1 To UBound(TDon, 1)
      If TDon(L, 1) <> "" Then Dico(TDon(L, 1)) = 1
      Next L
   With Sheets(1).Range("B1"): TDon = .Offset(, -1).Resize(.End(xlDown).Row, 5).Value: End With
   ReDim TRés(1 To UBound(TDon, 1), 1 To 11)
   For L = 1 To UBound(TDon, 1)
      If Dico.Exists(TDon(L, 4)) Then
         Select Case TDon(L, 3)
            Case "Lola":   TRés(L, 1) = TDon(L, 1): TRés(L, 2) = "Lola": TRés(L, 3) = Right(TDon(L, 4), 1)
            Case "Quentin": TRés(L, 5) = TDon(L, 1): TRés(L, 6) = "Quentin": TRés(L, 7) = Right(TDon(L, 4), 1)
            Case "Pierre": TRés(L, 9) = TDon(L, 1): TRés(L, 10) = "Pierre": TRés(L, 11) = Right(TDon(L, 4), 1)
            End Select: End If: Next L
   Sheets(1).Range("F1").Resize(UBound(TRés, 1), 11).Value = TRés
   End Sub
 
- 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
6
Affichages
171
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
286
Réponses
4
Affichages
163
Réponses
7
Affichages
251
Réponses
1
Affichages
109
Réponses
2
Affichages
202
Retour