Ce forum accueille les anciens de TDLJ, pour que cette communauté ne se disperse pas aux quatre vents, mais tout nouveau membre est le bienvenu ! La bonne humeur est au programme et côtoie de nombreux concours et sujets de discussions variés.
 
AccueilPortailCalendrierFAQRechercherMembresGroupesS'enregistrerConnexion
Venez participer à "L'Énigme du Mois de Mai 2015". Allez section "Évènements" sur le topic de L'Énigme du Mois pour avoir plus d'informations. Bonne chance à tous les Sherlock en herbe !
ATTENTION : Les bonbons sont toujours là. Venez les trouver. Venez participer à "l’Évent Halloween". Allez section "Évènements" sur le topic de l’Évent pour avoir plus d'informations. Bonne chance à tous !
Chers membres, Aguila a eu l'idée de tous nous réunir pour de vrai. Allez section "Évènements" sur le Topic du Rassemblement pour avoir plus d'informations.

Partagez | .
 

 [Résolu][Aide Informatique] Programme VBA

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
kelk1
Fou/Folle
Fou/Folle
avatar

Masculin Age : 22
Niveau de folie : 1968
Messages : 307
Lieu : à la taverne !!

MessageSujet: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 16:38

Bonjour, je viens ici car je sais pas trop où aller ^^'
j'ai un programme vba à réaliser et j'ai comme qui dirait un pitit problème ^^'
si quelqu'un peut m'aider à le résoudre :/
J'explique mon travail : il s'agit de réaliser une sorte de démineur sur excel. A la différence du démineur classique, ici, on part de la case en haut a gauche de la grille pour tenter d'aller en bas a droite de la grille, on ne peut se deplacer que d'une case à la fois.
Afin que le programme attende l'action du changement de case j'ai vu sur internet qu'on pouvait mettre un Doevents. Je ne sais cependant pas à quoi ça sert (enfin comment ça marche :/)
je vous montre mon programme : (il y a surement beaucoup plus simple et je pense qu'il y a des lignes en trop mais a force de le refaire j'ai peut etre des trucs qui servent à rien)
il y a la macro de départ qui met en place le jeu (cadre, fond, ...) il appelle cette macro :
Code:
Sub Etude_Cellule(L As Integer, C As Integer, X As Integer, Y As Integer, Mine As Integer, message As String)
Cells(L, C).Activate
Cells(L, C).Interior.ColorIndex = 2
Call M_MineAlentour.mine_alentour(L, C, Mine, message)
Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
While X = L And Y = C
Call Coordonnée_Cellules(X, Y)
  If message = "Perdu" Then
  X = -1
  Y = -1
  End If
  If X = 12 And Y = 12 Then
  L = -1
  C = -1
  End If
  DoEvents
Wend
Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
L = X
C = Y
If L = 12 And C = 12 Then
Call M_MineAlentour.mine_alentour(L, C, Mine, message)
  If message <> "Perdu" Then
    MsgBox "Gagné"
    message = "Gagné"
    End If
End If
End Sub
Ce Doevents me permets d'activer une autre macro (par des boutons placés sur la feuille excel)
Code:
Sub Bouton_Bas()
Dim X As Integer
Dim Y As Integer
Dim L As Integer
Dim C As Integer
Dim Mine As Integer
Dim message As String
Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
Cells(X + 1, Y).Select
L = X + 1
C = Y
Call M_EtudeCellule.Etude_Cellule(L, C, X, Y, Mine, message)
End Sub
Je vois que le doevents arrete la macro etude de cellule, ce qui me laisse le loisir d'activer par exemple la macro bouton bas, cependant a la fin de l'execution de bouton il reviens sur la macro etude de cellule, cependant les variables ont changer de valeur. du coup lorsque j'ai gagné (voir perdu mais c'est moins grave) il me mets en boucle le message "gagné" ... puisqu'il retourne toujours dans la boucle alors que je veut qu'il finnisse le programme.
je vous mets egalement les 2 macro qui sont appelées :
Code:
Sub mine_alentour(L As Integer, C As Integer, Mine As Integer, message As String)
Mine = 0
If Cells(L, C).Value = "X" Then
        MsgBox "Perdu"
        message = "Perdu"
Range("C3:L12").Interior.ColorIndex = 2
  Else
        If Cells(L - 1, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L - 1, C).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L - 1, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C).Value = "X" Then
          Mine = 1 + Mine
          End If
        Cells(L, C).Value = Mine
        Cells(L, C).Font.ColorIndex = 5
    If Mine = 0 Then
    Cells(L, C).Value = ""
    End If
End If
End Sub
Code:
Sub Coordonnée_Cellules(X As Integer, Y As Integer)
Y = ActiveCell.Column
X = ActiveCell.Row
End Sub
si quelqu'un pouvait m'en apprendre plus sur le Doevents et pourquoi il me ramène toujours dans ma boucle ...
voir si possible me dire comment resoudre ce problème  ...
Merci beaucoup !!

__________

Vous rendez la poulette ou sinon c'est tout nu dans les orties !
Les héros ne se battent que pour la dignité des faibles !
J'ai rêvé qu'il y avait des scorpions qui voulaient me piquer. En plus, y en avait un il était mi-ours, mi-scorpion et re mi-ours derrière !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Circé
Snow Queen
Snow Queen
avatar

1e Concours Libre 14 Juillet + 3e Concours de Graphisme + Sushi Or 2013 + 1e Concours de Signature + Grand Champion Enigme du Mois 2013 d’Or + 1e Concours de Vidéo + 1e Concours Libre Saint Valentin

Féminin Age : 39
Niveau de folie : 9043
Messages : 3064
Lieu : In the Cold

MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 17:35

Si j'avais excel je me serais amusée à essayer de comprendre tout ça... mais j'ai pas excel :/ Désolée de pas pouvoir aider :/ Y'a pas de forums spécialisés qui parlent d'excel, tu trouverais sans doute ton bonheur sur certains d'entre eux.

__________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://thecircezone.wordpress.com
Invité
Invité
avatar


MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 17:37

je n'y connais rien en vba ^^ mais j'ai des notions en code et c'est toujours la même logique Razz
bref tout ça pour dire que je ne suis pas sur à 100% ^^
tout d'abord:
dans ton code principal, il y a un if (à la fin) et ton while qui ne sont pas fermés, est ce normal?
édit: j'ai rien dit ton while est bien fermé mais il manque quand même un "end if " à la fin

es tu sur d'appeler ton Doevents au bon endroit?

je vais plus me pencher dessus, j'comprend pas tout pour le moment ^^


édit: tu appelles ton Doevents dans ton while, du coup si tu ne sors pas du while c'est que tu correspond toujours aux critères (X = L And Y = C)
pour que tu sortes de cette boucle il faudrait que tu rajoutes dans ton Doevents une ligne qui ferait que X soit différent de L ou que Y soit différent de C
Revenir en haut Aller en bas
kelk1
Fou/Folle
Fou/Folle
avatar

Masculin Age : 22
Niveau de folie : 1968
Messages : 307
Lieu : à la taverne !!

MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 18:00

grace à ce que tu m'a dis j'ai compris qu'en réalité je n'avais plus besoin de ma boucle while ^^' !
du coup ça marche bien je n'ai plus le message gagné a l'infini ^^
cependant desormais j'ai comme un clignotement perpetuel de la feuille excel puisque il attend/cherche fin fait quelque chose ^^
de plus j'ai 2 fois le message perdu ou le message gagné mais bon ... ça je peux m'en débrouiller je pense :/

__________

Vous rendez la poulette ou sinon c'est tout nu dans les orties !
Les héros ne se battent que pour la dignité des faibles !
J'ai rêvé qu'il y avait des scorpions qui voulaient me piquer. En plus, y en avait un il était mi-ours, mi-scorpion et re mi-ours derrière !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité
avatar


MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 18:06

tant mieux si j'ai réussi à t'aider un peu ^^
(même si je comprend toujours pratiquement rien à ton code sweat )

Kelk1 a écrit:
j'ai comme un clignotement perpetuel de la feuille excel puisque il attend/cherche fin fait quelque chose ^^
il attend peut être que tu fermes ton if à la fin ^^
Revenir en haut Aller en bas
kelk1
Fou/Folle
Fou/Folle
avatar

Masculin Age : 22
Niveau de folie : 1968
Messages : 307
Lieu : à la taverne !!

MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 19:32

C'est bon j'ai résolu le problème et par la meme occasion j'ai fini mon démineur Very Happy

__________

Vous rendez la poulette ou sinon c'est tout nu dans les orties !
Les héros ne se battent que pour la dignité des faibles !
J'ai rêvé qu'il y avait des scorpions qui voulaient me piquer. En plus, y en avait un il était mi-ours, mi-scorpion et re mi-ours derrière !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité
avatar


MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 19:33

wave bravo Smile
Revenir en haut Aller en bas
kelk1
Fou/Folle
Fou/Folle
avatar

Masculin Age : 22
Niveau de folie : 1968
Messages : 307
Lieu : à la taverne !!

MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 19:43

merci a vous Very Happy pour votre aide Smile
eh oui je te vouvoie Razz
et les modadmines peuvent fermer ce sujet ...

__________

Vous rendez la poulette ou sinon c'est tout nu dans les orties !
Les héros ne se battent que pour la dignité des faibles !
J'ai rêvé qu'il y avait des scorpions qui voulaient me piquer. En plus, y en avait un il était mi-ours, mi-scorpion et re mi-ours derrière !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité
avatar


MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   Mer 24 Avr 2013 - 19:48

je t'ai pas vraiment aidé ^^ c'est toi qui a compris ton erreur tout seul Smile

si tu continues à me vouvoyer je te tronçonne en deux Mad
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [Résolu][Aide Informatique] Programme VBA   

Revenir en haut Aller en bas
 

[Résolu][Aide Informatique] Programme VBA

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» [Questions et aide] Informatique
» [aide] Fermer programme définitivement
» Piwigo logiciel pour créer son site photo
» [résolu][AIDE] plus de son !!
» [résolu][AIDE] Changement de sonnerie impossible(pour le moment ;) )

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Terre d'Asile :: Discussions :: Divers-