XL 2010 Function personalisée pas assez rapide

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

Giboin

XLDnaute Nouveau
Bonjour à tous,

Voici le code de ma function personalisée. Elle fonctionne parfaitement mais elle est lente et celà est assez normal compte tenu du fait qu'elle boucle sur plus de 11000 lignes. Je me doute que je dois passer par du for range imbriqué, mais j'ai un peu de mal. Pouvez-vous m'aider un peu ?

VB:
Function GetFromRZ(FromA, ToB, ColumnName, Optional Nnummer)
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False

If IsMissing(Nnummer) Then Nnummer = 1

LL = 1
FindCount = 0


    Do Until LL = 50000
    LL = LL + 1
   
    If FromA = 0 Or FromA = "" Then LL = 50000
    If ToB = 0 Or ToB = "" Then LL = 50000
   
        If Sheets("DATA").Cells(LL, 1) = FromA Then
       
            If Sheets("DATA").Cells(LL, 17) = ToB Then
           
            FindCount = FindCount + 1
                If FindCount = Nnummer Then
               
                If ColumnName = 1 Then Result = Sheets("DATA").Cells(LL, 2) 'PortA
                If ColumnName = 2 Then Result = Sheets("DATA").Cells(LL, 4) 'KabelA
                If ColumnName = 3 Then Result = Sheets("DATA").Cells(LL, 9) 'LWL
                If ColumnName = 4 Then Result = Sheets("DATA").Cells(LL, 11) 'RZ
                If ColumnName = 5 Then Result = Sheets("DATA").Cells(LL, 12) 'KabelB=get
                If ColumnName = 6 Then Result = "Pos. " & Sheets("DATA").Cells(LL, 13) 'Position
                If ColumnName = 7 Then Result = Sheets("DATA").Cells(LL, 18) 'PortB
                   
                LL = 50000
               
                End If
            End If
       
        End If
   
    Loop


If Result = 0 Then Result = ""
GetFromRZ = Result

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True

End Function
 
Bonjour Giboin et bienvenue sur XLD,

Au minimum et par respect pour les futurs potentiels répondeurs, il serait bon de nous fournir votre fichier (quelques lignes représentatives suffiront et avec la macro bien sûr) et de nous expliquer quel est le but de cette macro.

Merci et à plus,

nota : à défaut, suivez les excellents conseils de Dranreb que je salue 😉.
 
- 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
2
Affichages
540
Retour