Effectuer un Next à l'intérieur d'un test if
Résolu/Fermé
NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
-
Modifié par NLAH le 6/01/2017 à 20:22
NLAH - 8 janv. 2017 à 08:01
NLAH - 8 janv. 2017 à 08:01
A voir également:
- Effectuer un Next à l'intérieur d'un test if
- Test performance pc - Guide
- Test composant pc - Guide
- Redmi note 13 5g test - Accueil - Téléphones
- Logiciel agencement interieur - Guide
- Test performance pc gratuit - Accueil - Utilitaires
4 réponses
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
Ambassadeur
1 557
6 janv. 2017 à 21:08
6 janv. 2017 à 21:08
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.
NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
2
6 janv. 2017 à 21:16
6 janv. 2017 à 21:16
vous trouvez ci joint un fichier excel qui explique clairement mon besoin:
https://www.cjoint.com/c/GAguoDYJMsv
https://www.cjoint.com/c/GAguoDYJMsv
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
6 janv. 2017 à 21:27
6 janv. 2017 à 21:27
où est l'explication?
NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
2
6 janv. 2017 à 21:32
6 janv. 2017 à 21:32
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é
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
6 janv. 2017 à 23:27
6 janv. 2017 à 23:27
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
NLAH
Messages postés
125
Date d'inscription
lundi 9 septembre 2013
Statut
Membre
Dernière intervention
13 juin 2017
2
7 janv. 2017 à 00:05
7 janv. 2017 à 00:05
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.
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
7 janv. 2017 à 00:16
7 janv. 2017 à 00:16
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
Utilisateur anonyme
7 janv. 2017 à 00:30
7 janv. 2017 à 00:30
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. :)
Utilisateur anonyme
7 janv. 2017 à 17:28
7 janv. 2017 à 17:28
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. :)