XL 2019 Changer valeur boucle for par valeur range

Hoareau

XLDnaute Occasionnel
Bonjour

J'ai une boucle for, dans laquelle, je veux changer les valeurs e m et n par les valeurs du ange
Actuellement seulement le couplé 100,200 apparait
dans le range se trouve 100,200,300,400,500,600,700,800,900,1000

100 200 qui en fait est le couplé 1 2

Sub test()
Dim Tab_couple_a_supprimer(1 To 20, 1 To 1)

Set plage = Sheets("feuil2").Range("Y4:Y23")

Tab_couple_a_supprime = plage.Value

For m = 1 To 17
For n = m + 1 To 18

m = Tab_couple_a_supprime(m, 1)
n = Tab_couple_a_supprime(n, 1)

Next n, m

merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @jmfmarques ;)

discipline fondamentale :
on ne modifie jamais le paramètre d'avancement d'une boucle au sein de la boucle.

[humour]
Et selon moi, l'opposé est tout aussi vrai :
Fondamentale discipline :
Au sein d'une boucle, on ne modifie jamais son paramètre d'avancement

Il est de très rares cas où cela reste possible : tentative de suicide, dépression sévère, codage sous l'emprise de l'alcool ou de substantes psychotropes, état de mort cérébrale. A part ces cas, je ne vois pas.

Attention! Je n'affirme pas ne l'avoir jamais fait par fainéantise. Vous savez ce que c'est : quand on est jeune, on ose tout. Mais depuis ces essais funestes, je suis chauve comme un œuf à force de m'être arraché les cheveux à la recherche des erreurs et anomalies d'exécution. La punition fut sévère et les conséquences de cet essai téméraire sont encore et toujours visibles sur mon crâne dégarni.

Bon ma présence sur XLD va se raréfier.
A près d'un euro le masque chirurgical, je vais me reconvertir en marchand à la sauvette de la dite protection. Encore plus lucratif que le bonneteau! Au revoir les XLDiens, je vais aller m'en faire une paire en or.
[/humour]
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Hoareau :)
je ne suis pas plus avancé
vu que je ne comprend pas la réponse

Dans votre cas, vous avez deux boucles d'indice m et n.
Au cours de ces deux boucles, on modifie les indices m et n.
Ceci peut conduire à de graves erreurs ou incohérence difficilement repérables à l'exécution.
C'est pourquoi @jmfmarques vous a conseillé très justement de ne pas le faire.

Quant à vous aider, c'est très difficile. Ce ne sont pas les quelques lignes que vous avez jointes à votre message qui peuvent nous renseigner en quoi que ce soit.
 
Dernière édition:

jmfmarques

XLDnaute Accro
je ne suis pas plus avancé
vu que je ne comprend pas la réponse
Ah !
regarde ceci (exemple)
VB:
For K = 1 To 5 ' K est le paramètre compteur de la boucle
  K = 1 ' on ne modifie pas la valeur de K dans la boucle
Next K
Que crois-tu qu'il se passerait en lançant par exemple une telle boucle ? -->> tu ne le sais pas ? ---> fais-le donc et tu comprendras qu'il ne faut pas toucher à K
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Essai ceci si j'ai bien compris !
Bonne journée !
VB:
Sub test1()
Dim i As Long
Application.ScreenUpdating = False
For i = 5 To 65000 Step 2
 If Cells(i, 25) = "" Then Exit Sub
  Cells(i, 25) = ""
Next i
Application.ScreenUpdating = True
End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Moi non plus je ne comprends absolument rien à ce que veut faire Hoareau, mais j'ai plutôt vaguement entrevu quelque chose comme ça :
VB:
Option Explicit
Sub Test()
   Dim Plage As Range, T(), L As Long, TS() As String, LS As Long
   Set Plage = Sheets("Feuil2").Range("Y4:Y23")
   T = Plage.Value
   ReDim TS(1 To UBound(T, 1) \ 2)
   For L = 1 To UBound(T, 1) - 1 Step 2
      LS = LS + 1
      TS(LS) = T(L, 1) & " " & T(L + 1, 1)
      Next L
   MsgBox Join(TS, vbLf)
   End Sub
 

Hoareau

XLDnaute Occasionnel
Bonjour

Je profite de l'occasion pour vous remercier, de vos apports turfistes


regarder dans mon post dictionary, vers la fin des messages,il y a un fichier, qui comprend tout mon code, il n'est pas propre, je le nettoye, au fra et à mesure
le code joint à ce post, n'est qu'une partie de ce que je veux incorporer dans mon projet global

le but éliminer certains couplés en fonction de la somme des côtes, et d'autres critères, notament que certain N° ne figurent pas deux par deux, c'est pourquoi, je vais chercher les N° dans un range, , car ils changent au fil des courses, je les associes deux par deux et à un certain moment dans la boucle, je supprime ces couplés (10 N° donne quand même, 45 combinaisons en moins, même ce chiffre n'est pas constant, il va de 7 à 10 en principe)
ce que j'essaie de faire, réduire les combinaisons, en essayant de ne pas réduire trop la réussite

pour résumer, les couplés des N° qui sont dans le range ou il y 100 200 et...,que j'ai mis juste pour le test, pour mieux visualiser l'affichage, mais qui en réalitée sont des N° de 1 à 18
j'ai oublié de mettre des N° réels dans ce post dans le fichier joint

j'avais une macro, a un moment qui faisait quelque chose de similaire, mais mon disque dur a laché et j'ai perdu la presque totalité de mes fichiers, donc je suis obligé, d'essayer de refaire certaines choses.

merci
 

jmfmarques

XLDnaute Accro
Bonjour à tous
Lorsqu'une application est, sinon maîtrisée, tout au moins raisonnée, on doit savoir en isoler les fonctionnalités et modules de code y correspondant. Et exprimer tout cela sous la forme d'un exposé clair des tenants et des aboutissants de ce seul module.
Procéder autrement est aventureux de la part du développeur et du "chinois" pour ceux dont une aide est sollicitée.
Je pense que Hoareau devrait s'efforcer d'exposer cela de manière technique, claire et précise, sans même (et surtout) avoir à se référer à telle ou telle autre discussion ouverte pour traiter tout ou partie de son application.
Amitiés
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Je suis comme vous, je n'ai pas tout compris !
Mais moi-même turfiste depuis 1969 et ayant 70 piges , j'ai ma petite idée de ce que je n'ai jamais fait faute de moyen financier !
Admettons que notre demandeur soit limité en budget ( mais pas trop dans son objectif si j'ai bien compris)
Un couplé c'est 2 chevaux à trouver ( ça tout le monde l'avait compris) sur 18 partants ( dur dur) par exemple !
Si l'on veut faire plusieurs couplés moi-même je vais choisir plusieurs grosses côtes pour avoir des gains important !
Sinon si c'est des petites côtes ça ne vaut pas le coup !
Exemple :
Dans une course de 18 partants j'ai repéré le 1 à 4/1 et le 10 à 6/1 ( belles côtes il ne faut pas descendre en dessous de 3/1 )
Dans ce cas je peux miser 5€ sur le 1 - 10 gagnant ou 1 - 10 placé ( moins avantageux )
Je ne peux vous dire ce que rapportera ce couplé mais en simple ( 1 cheval ) :
Le 1 à 4/1 pour une mise de 5€ = 5X4 = 20€
Le 10 à 6/1 pour une mise de 5€ = 5X6= 30€
Les couplés sont plus difficile à trouver mais en faisant plusieurs combinaisons dans une course l'on peut gagner ou perdre !
Tout cela n'est pas mathématique ( j'ai plusieurs fichiers sur le turf et suis en perte d'argent ), il y a comme tout jeux une grande part de chance !
Bon jeux et bonne journée !
 

JBARBE

XLDnaute Barbatruc
Re,
Pour info avec une mise minimum de 3 € :
- trouver le Nb de combinaisons possible avec des couplés sur 18 partants et le total à jouer !
- jouer tout les chevaux ( 18) avec 3 € soit 54€
Il vaudrait mieux éliminer des chevaux dans ces 2 cas !
Et il vaudrait mieux étudier le turf !
Je joins mon fichier des courses de plat dont je me sert pour faire mes jeux !
Bonne journée !
https://www.cjoint.com/c/JEcmhDKvRYv
 

Hoareau

XLDnaute Occasionnel
"je suis comme vous, je n'ai pas tout compris "
a mon fichier ou au courses d'une manière générale

pour finir , je ne sais plus comment vous expliquer, c'est pourtant très simple
je ne remets pas en doute votre intelligence, au fil des ans, j'ai vu le travail, parfois très compliqué de ceux qui animent ce forum

"entre parenthèses", roger237, est il encore sur le forum, si non,j'espère qu'il va bien

il ne faut tenir compte que de la boucle citée plus haut, et ne pas chercher à comprendre la finalité
c"est simple dans ma boucle, j'ai compris, je ne peux toucher à n et m

donc il me faut deux variables x y qui correspondent aux N° cité dans le range en question associés deux par deux comme n et m et qui se affichée ainsi x & " "&y
si ce n'est possible, je vais faire, ce que je voulais éviter, faire les couplés à supprimer les mettre dans un range pour les récupérer déjà fait, dans ma boucle principale
 

Discussions similaires

Réponses
7
Affichages
292
Réponses
11
Affichages
837

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024