Quelle boucle utiliser ?

Julia_74 Messages postés 20 Date d'inscription mardi 30 septembre 2014 Statut Membre Dernière intervention 5 mars 2015 - 19 nov. 2014 à 11:43
IBM.MVP Messages postés 12 Date d'inscription vendredi 1 août 2014 Statut Membre Dernière intervention 12 mars 2015 - 12 mars 2015 à 06:50
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 nov. 2014 à 14:41
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 (?)

0
Julia_74 Messages postés 20 Date d'inscription mardi 30 septembre 2014 Statut Membre Dernière intervention 5 mars 2015
20 nov. 2014 à 13:56
Bonjour,
Merci pour cette information
Je m'y attèle
je pense qu'une formule serait trop compliquée....
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 19/11/2014 à 18:15
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
0
Julia_74 Messages postés 20 Date d'inscription mardi 30 septembre 2014 Statut Membre Dernière intervention 5 mars 2015
20 nov. 2014 à 14:02
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 nov. 2014 à 06:52
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.
0
IBM.MVP Messages postés 12 Date d'inscription vendredi 1 août 2014 Statut Membre Dernière intervention 12 mars 2015
12 mars 2015 à 06:50
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
0
Rejoignez-nous