Bonjour à tous,
Je suis un débutant en VBA et je lutte avec le problème suivant :
Je construit une base de données dans le temps sur une population d'entreprises à partir de 2 extractions. Je peux matcher les observations grâce à un numéro identifiant et à l'année.
J'ai besoin de copier une cellule dans une colonne pour une observation particulière quand 2 conditions sont remplies: l'identifiant est le même, et l'année est également la bonne. Si je ne trouve rien je veux mettre un point dans la cellule. J'ai écris le code suivant:
***
sub database()
Dim j As Integer
Dim i As Integer
Application.ScreenUpdating = False
For j = 0 To 43147
For i = 0 To 7389
If Cells(2 + j, 3) = Cells(2 + i, 18) And Cells(2 + j, 16) = Cells(2 + i, 19) Then
Cells(2 + j, 6) = Cells(2 + i, 21)
Exit For
Else
Cells(2 + j, 6) = "."
End If
Next i
Next j
Application.ScreenUpdating = True
end sub
***
Comme j'ai 43147 lignes à compléter et que la cellule que je cherche est potentiellement n'importe laquelle dans une plage de 7389 cellules ça prend beaucoup trop de temps (+ d'une heure) à exécuter.
Je serai tellement heureux si quelqu'un pouvait m'aider,
J'apprécie beaucoup votre temps et votre attention,
L.
Je suis un débutant en VBA et je lutte avec le problème suivant :
Je construit une base de données dans le temps sur une population d'entreprises à partir de 2 extractions. Je peux matcher les observations grâce à un numéro identifiant et à l'année.
J'ai besoin de copier une cellule dans une colonne pour une observation particulière quand 2 conditions sont remplies: l'identifiant est le même, et l'année est également la bonne. Si je ne trouve rien je veux mettre un point dans la cellule. J'ai écris le code suivant:
***
sub database()
Dim j As Integer
Dim i As Integer
Application.ScreenUpdating = False
For j = 0 To 43147
For i = 0 To 7389
If Cells(2 + j, 3) = Cells(2 + i, 18) And Cells(2 + j, 16) = Cells(2 + i, 19) Then
Cells(2 + j, 6) = Cells(2 + i, 21)
Exit For
Else
Cells(2 + j, 6) = "."
End If
Next i
Next j
Application.ScreenUpdating = True
end sub
***
Comme j'ai 43147 lignes à compléter et que la cellule que je cherche est potentiellement n'importe laquelle dans une plage de 7389 cellules ça prend beaucoup trop de temps (+ d'une heure) à exécuter.
Je serai tellement heureux si quelqu'un pouvait m'aider,
J'apprécie beaucoup votre temps et votre attention,
L.