IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Probleme sur un projet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut Probleme sur un projet
    Bonjour à tous,

    Alors voilà je dois effectuer un projet sur VBA dans le cadre de mes études, il s'agit de réaliser un jeu où il y a un bloc rouge horizontal se trouvant sur la 3éme ligne de la grille (la grille a une dimension de 6x6) et un nombre aléatoire d'autres blocs (de taille 2 ou 3 cases) qu'on pourra deplacer afin de libérer le bloc rouge.

    Je rencontre un problème dans mon programme que je ne comprends pas du tout car ça me semble logique.

    Voici la partie qui me pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do
        x = Int((6 * Rnd) + 1)
        y = Int((6 * Rnd) + 1)
    Loop Until (t(x, y) <> 0) Or ((x = 3) And (y >= colBlocR))
    Je veux en fait placer un des blocs de manière aléatoire, je génère donc aléatoirement les coordonnées de la première case qui composera le bloc (x,y).

    Sauf que je ne veux mettre aucun bloc devant le bloc rouge, je dis donc dans le programme de répéter la fonction aléatoire tant que (x=ligne du bloc rouge ET y>= à la colonne du bloc rouge) OU (t(x,y)<>0 )car si c'est différent de 0 cela voudra dire que la case n'est pas vide.

    Et lorsque que je teste le programme il me fait tout l'inverse, c'est-à-dire qu'il va sortir du tant que , que lorsque x sera = 3 et y >= à la colonne du bloc rouge.

    Je ne vois pas du tout pourquoi il me fait ça, je pense avoir bien écrit le code

    Si quelqu'un aurait une idée ce serait gentil.

    Bonne journée et merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Essaie en l'écrivant :

    Loop Until (t(x, y) = 0 And (x = 3) And (y >= colBlocR)

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut
    Merci pour votre réponse.
    Je crois avoir compris finalement, lorsque l'on met : do [...] loop until "condition" ça veut dire qu'il répète jusqu'à ce que "condition" soit vraie c'est pour ça que ça me faisait l'inverse non ?

    Dans notre cours la prof ne nous avait pas précisé ce point et ayant l'habitude d'utiliser des TANT QUE "condition" FAIRE etc ça m'a induit en erreur.

  4. #4
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    La traduction de "until" est : "jusqu'à" ...
    Donc le Loop until tourne jusqu'à ce que la condition soit vraie.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonsoir

    la fonction "rnd" te donne apparament un chiffre au hazard entre x et y mais ca n'est pas le cas

    en haut de macro (debut ) met "Randomize"

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de developpement sur un projet DNP3
    Par babou19900 dans le forum Développement
    Réponses: 0
    Dernier message: 18/08/2011, 17h13
  2. Réponses: 0
    Dernier message: 22/08/2009, 17h03
  3. petit probleme de pointeur dans strcat sur le projet de mes etudiant
    Par hamhama-group dans le forum Bibliothèque standard
    Réponses: 8
    Dernier message: 04/12/2007, 18h34
  4. Réponses: 3
    Dernier message: 07/04/2003, 20h06
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo