Fonction qui prend trop de temps à être réalisée
Résolu
mijean94
Messages postés
413
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 413 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 413 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Y a-t-il une solution pour raccourcir le temps d’exécution de ma fonction ?
Aujourd’hui, il faut 35 secondes pour faire cette boucle.
Codeb, cofin,lideb,lifin sont le numéros des lignes et colonnes.
Merci pour l’aide
Bien cordialement
Y a-t-il une solution pour raccourcir le temps d’exécution de ma fonction ?
Aujourd’hui, il faut 35 secondes pour faire cette boucle.
Codeb, cofin,lideb,lifin sont le numéros des lignes et colonnes.
Dim lideb As Long, codeb As Long, lifin As Long, cofin As Long
Dim co As Long, li As Long
For co = codeb To cofin
For li = lideb To lifin
If Cells(li, co) <> "" Then
Range(Cells(li, co).Address).Value = "x"
End If
Next li
Next co
Merci pour l’aide
Bien cordialement
1 réponse
-
Je vois que tu persiste à ne mettre qu'une ébauche de procédure ...
Essaie avecSub Test()
Dim lideb As Long, codeb As Long, lifin As Long, cofin As Long
Dim co As Long, li As Long
Dim T
codeb = 1
cofin = 1000
lideb = 1
lifin = 1000
T = Range(Cells(lideb, codeb), Cells(lifin, cofin))
For i = 1 To UBound(T, 1)
For j = 1 To UBound(T, 2)
If T(i, j) <> "" Then
T(i, j) = "x"
End If
Next j
Next i
Range(Cells(lideb, codeb), Cells(lifin, cofin)) = T
End Sub
A+-
Re,
Merci pour la Réponse.
Effectivement j'ai mis qu’une ébauche pour ne pas compliquer. c'est pas bien ?
Pour le Dim T, il doit resté sans rien ?
Il faut aussi mettre un Dim i et j en As long ?
à l'utilisation du code erreur 1004 sur T = Range(Cells(lideb, codeb), Cells(lifin, cofin))
Bien cordialement- Lorsque tu déclares une variable sans spécifier le type, par défaut celui-ci est variant.
Dim T <=> Dim T as Variant
Pour les variables i et j, le type est fonction du nombre de lignes et colonnes utilisées.
Par défaut, on prend généralement le type adapté au maximum de la feuille :
i as Long puisque le max de lignes est 1 048 576
(Long autorise jusqu'à 2 147 483 647)
j as integer puisque le max de colonnes est 16 384
(integer autorise jusqu'à 32 767).
Concernant l'erreur 1004, commence par regarder les valeurs de codeb, cofin, lideb et lifin).
A+
-