Quelle boucle utiliser ?

Signaler
Messages postés
20
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
5 mars 2015
-
Messages postés
12
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
12 mars 2015
-
Bonjour à tous,
J'ai un peu l'impression de passer ma vie ici, mais c'est toujours très utile :).

Je coince sur le choix d'une boucle (il faut dire que je n'y connais pas grand chose, ayant simplement codé sur scilab il y a 5ans...)

Je m'explique :

J'ai une plage de 72 cellules (A1 à A6, B1 à B6, C1 à C6 etc) ; selon le mot inscrit dans la case Z1, ces cellules prennent différentes valeurs (qui sont elles mises en lignes dans un tableau) :
Exemple :
Si Z1 = Mot23, alors A1= A23, A2= B23, A3=C23.....

Sur le principe rien de bien compliqué, sauf qu'avec 72 cellules à faire remplacer et une 20aine de conditions en Z1, je risque de me retrouver avec des lignes et des lignes (et encore des lignes) de code, ce qui est pas forcément bien en cas de gestion d'erreur ou de besoin de modifications...

J'ai cherché ce matin les boucles existantes (while, doloop...) mais j'ai du mal à voir laquelle appliquer.

Si l'un ou l'une d'entre vous peut m'aiguiller, ce serait super

Bonne journée à tous,
Julia

4 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Bonjour,

Si j'ai bien compris, j'opterais pour une double boucle For...Next en plus d'un Select Case pour la vérification de Z1

Donc, un For...Next pour lire les lignes et une autre pour les colonnes.

Par contre, est-ce qu'une formule ne serait pas possible (?)

Messages postés
20
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
5 mars 2015

Bonjour,
Merci pour cette information
Je m'y attèle
je pense qu'une formule serait trop compliquée....
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
Je vois mal le but/utilité d'une telle manoeuvre, mais je m'intéresserais personnellement à l'utilisation de la méthode WorksheetFunction.Transpose, puisqu'il semble s'agir de mettre sous forme verticale, de A1 à Ax ce qui est réparti à la ligne y (où Y est le nombre terminant le "mot" moty) de la colonne A à la colonne ...?...(la logique voudrait d'ailleurs que le "?" soit = X).
Je veux supposer que tu sais extraire le nombre qui termine ton mot "mot##"
AUCUNE boucle nécessaire

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
20
Date d'inscription
mardi 30 septembre 2014
Statut
Membre
Dernière intervention
5 mars 2015

Bonjour,

L'utilisé est la suivante :

J'ai un programme comprenant trois projets :
A B et C
Et sur 12 mois, je fais le suivi des projets . Chaque projet à différents livrables (disons 3 par projets) ; Le suivi consiste à dénombrer sur chaque mois, combien il y a de livrables en cours, terminés ou en retard (résultat représenté par une somme)

J'ai donc :
- en ligne les mois
- en colonne les projets et leurs livrables

Et j'ai un tableau bilan.

Je veux que ce tableau me montre :
- soit les résultats des livrables des trois projets réunis
- soit les résultats du projet A B ou C
Selon un bouton de commande associée à une liste déroulante.

C'est pour cela que je souhaite simplifier ma boucle.

Exemple : Si on choisit "Projet A"
Alors les cellules du tableau prendront les valeurs situées sur la ligne contenant les sommes des livrables pour chaque mois du projet A.

Ce qui fait donc, beaucoup de manip car mon tableau contient 72 cellules.

Je comprends ta méthode et le trouve bien plus manipulable, mais ma plage de destination est un tableau et non une ligne...
Pour le reste je pense pouvoir m'en inspirer;

Merci d'avoir pris le temps de me répondre.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Je t'ai répondu sur la base de ce qu'a exposé ton tout premier message, à savoir :
J'ai une plage de 72 cellules (A1 à A6, B1 à B6, C1 à C6 etc) ; selon le mot inscrit dans la case Z1, ces cellules prennent différentes valeurs (qui sont elles mises en lignes dans un tableau) :
Exemple :
Si Z1 = Mot23, alors A1= A23, A2= B23, A3=C23.....

qui se traduit bel et bien (sur la base de la ligne 23 définie en Z1) par la transposition en verticale, à partir de A1, des valeurs se trouvant en ligne 23. Ce que fait parfaitement la méthode que je t'ai indiquée.
Messages postés
12
Date d'inscription
vendredi 1 août 2014
Statut
Membre
Dernière intervention
12 mars 2015

Bonjours.
le choix d'une boucle par rapport à une autre est parfois question des situations.
par exemple dns votre cas vous avez dit possedez 76 celulles et on utilise la boucle for lorsque le nombre des boucles est deja connu à l'avance(76 pour vous).
j'espere voir été utile