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 ?
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