Fonction qui prend trop de temps à être réalisée
Résolu
mijean94
Messages postés
415
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 415 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 415 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
A voir également:
- Fonction qui prend trop de temps à être réalisée
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Fonction si et - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
- Dans le diaporama à télécharger, les diapositives s’enchaînent automatiquement. combien de temps la diapositive crayon met-elle à s’afficher ? combien de temps reste-t-elle affichée à l’écran ? - Forum Powerpoint
1 réponse
Je vois que tu persiste à ne mettre qu'une ébauche de procédure ...
Essaie avec
A+
Essaie avec
Sub 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+
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
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+
Merci pour les explications.
j'ai trouvé l'erreur qui est de ma faute car je n'ai pas supprimé les lignes :
codeb = 1
cofin = 1000
lideb = 1
lifin = 1000
ça marche nickel, merci pour l'aide.
Bien cordialement