Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Raccourcir temps d'execution loop

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

Franzz

XLDnaute Nouveau
Raccourcir temps d'execution loop [RESOLU]

Bonjour,

j'ai un petit code VBA qui me permet de mettre une valeur dans plusieurs cellules d'une colonne en fonction des valeurs des cellules d'une autre colonne au moment d'un clic :

le code vérife la position du clic puis va chercher dans l'autre colonne (colonne1) la valeur. il remonte jusqu'a ne plus trouver cette valeur, puis redesend en inserant la valeur désirer dans chacune des cellules de l'autre colonne.

Public Sub ajoutvaleur(ByVal Target As Range)
Dim valeur As Double
If Not Intersect(Target, Range("H3:H500")) Is Nothing Then
valeur = 1
Selection.Offset(0, -3).Range("A1").Select
Dim colonne1 As Integer
colonne1 = Selection.Value
Do While Selection.Value = colonne1
Selection.Offset(-1, 0).Range("A1").Select
Loop
Selection.Offset(1, 0).Range("A1").Select
Do While Selection.Value = colonne1
Selection.Offset(0, 3).Value = valeur
Selection.Offset(1, 0).Range("A1").Select
Loop
End If
End Sub

Le problème etant que c'est une opération longue et je suis sur qu'il y a un moyen plus simple de le faire, non ? 😉
 
Dernière édition:
Re : Raccourcir temps d'execution loop

Re-,

un essai :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur As Double, X, PremCel As Integer, Hauteur As Integer
If Target.Count = 1 Then
If Not Intersect(Target, Range("H2:H" & [H65000].End(xlUp).Row)) Is Nothing Then
    Valeur = Now()
    X = Target.Offset(0, -3).Value
    PremCel = Application.Match(X, Columns(5), 0)
    Hauteur = Application.CountIf(Columns(5), X)
    Cells(PremCel, 8).Resize(Hauteur, 1).Value = Valeur
End If
End If
End Sub
 
- 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
1
Affichages
188
Réponses
4
Affichages
255
Réponses
15
Affichages
790
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…