Effectuer un Next à l'intérieur d'un test if
Résolu
NLAH
Messages postés
125
Date d'inscription
Statut
Membre
Dernière intervention
-
NLAH -
NLAH -
A voir également:
- Effectuer un Next à l'intérieur d'un test if
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Tu n'expliques pas ce que tu attends de ton code.
Tu ne peux pas ajouter un "next" pour passer à l'itération suivante.
Tu ne peux pas ajouter un "next" pour passer à l'itération suivante.
vous trouvez ci joint un fichier excel qui explique clairement mon besoin:
https://www.cjoint.com/c/GAguoDYJMsv
https://www.cjoint.com/c/GAguoDYJMsv
je souhaite tout d'abords:
- balayer la colonne k , ligne par ligne , une fois je trouver la valeur d'une ligne est différente
de la ligne suivante: la valeur de la variable k deviendra k - Cells(L, 2), alors que dans mon code la variable K ne varie pas de cette manière. c'est pour cela je trouve pas le résultat souhaité
- balayer la colonne k , ligne par ligne , une fois je trouver la valeur d'une ligne est différente
de la ligne suivante: la valeur de la variable k deviendra k - Cells(L, 2), alors que dans mon code la variable K ne varie pas de cette manière. c'est pour cela je trouve pas le résultat souhaité
Tu n'as pas expliqué le résultat souhaité.
Tu n'as pas expliqué ce que tu attendais après que tu aies détecté que la valeur était différente : tu veux immédiatement recommencer toute la comparaison pour la nouvelle colonne k?
A quoi sert la variable cmp?
Suggestion:
Tu n'as pas expliqué ce que tu attendais après que tu aies détecté que la valeur était différente : tu veux immédiatement recommencer toute la comparaison pour la nouvelle colonne k?
A quoi sert la variable cmp?
Suggestion:
Sub mmm() Dim k As Integer, L As Integer, cmp As Integer Dim finik As Boolean k = 11 Do While k >= 6 L = 13 finik = False Do While (L >= 10) And Not finik cmp = 5 If Cells(L, k).Value <> Cells(L - 1, k).Value Then Cells(3, cmp) = Cells(L, 5) finik = True cmp = cmp + 1 ' ceci ne sert à rien! End If L = L - 1 Loop ' Do While (L >= 10) and not finik If finik Then k = k - Cells(L, 2) Else k = k - 1 End If Loop 'Do While k >= 6 End Sub
normalement ce que je souhaite afficher à la fin de ce code est la valeur 2(cells(3,4) et la valeur 1 (cells (3,5)(mon code m'affiche que la valeur 2 c'est ça mon problème) .
j'ai utilisé cmp pour la raison suivante: une fois la condition ''If Cells(L, k).Value <> Cells(L - 1, k).Value '' est vérifié je dois récupérer à chaque fois la valeur Cells(L, 5) dans la ligne 3, et la variable cmp me permet de me déplacer d'une colonne à une autre.
j'ai utilisé cmp pour la raison suivante: une fois la condition ''If Cells(L, k).Value <> Cells(L - 1, k).Value '' est vérifié je dois récupérer à chaque fois la valeur Cells(L, 5) dans la ligne 3, et la variable cmp me permet de me déplacer d'une colonne à une autre.
ainsi?
Sub mmm() Dim k As Integer, L As Integer, cmp As Integer Dim finik As Boolean cmp = 5 k = 11 Do While k >= 6 L = 13 finik = False Do While (L >= 10) And Not finik If Cells(L, k).Value <> Cells(L - 1, k).Value Then Cells(3, cmp) = Cells(L, 5) finik = True cmp = cmp + 1 Else L = L - 1 End If Loop ' Do While (L >= 10) and not finik If finik Then k = k - Cells(L, 2) Else k = k - 1 End If Loop 'Do While k >= 6 End Sub
Bonjour NLAH,
Je te retourne ton fichier Excel 2007 modifié.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Je te retourne ton fichier Excel 2007 modifié.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Bonjour NLAH,
Je mets ici directement ton code VBA corrigé :
Le code étant très court, tu pourras très facilement
voir les modifications que j'ai faites.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Je mets ici directement ton code VBA corrigé :
Option Explicit Sub mmm() Dim k As Integer, L As Integer, cmp As Byte For k = 11 To 6 Step -1 cmp = 5 For L = 13 To 10 Step -1 If Cells(L, k) <> Cells(L - 1, k) Then Cells(3, cmp) = Cells(L, 5) k = k - Cells(L, 2) cmp = cmp + 1 End If Next L Next k End Sub
Le code étant très court, tu pourras très facilement
voir les modifications que j'ai faites.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)