Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2607 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

un programme simple qui marche pas (en If et Else)

n°1484420
yanhoupa
Posté le 30-11-2006 à 16:14:14  profilanswer
 

Reprise du message précédent :
A ok, c'est assez complex mais je vois mieux maintenant, merci.
 
Tu as mi cela :
If tableau(col, lig) = MonChoix Then
           Range(MonChoix).Interior.ColorIndex = 3

 
et cela ne colorie que la case où est la tour, et enfaite moi mon but est de colorier toute les cases où la tour peut se déplacer (en clair toute la ligne et toute la colone ou elle se trouve) sauf la ou elle est.
 
Moi j'ai pensé a cela mais ca marche pas :
 
If tableau(col, lig) = MonChoix Then
            Columns("col:col" ).Interior.ColorIndex = 3
            Rows("lig:lig" ).Interior.ColorIndex = 3
            Range(MonChoix).Interior.ColorIndex = 0


Message édité par yanhoupa le 30-11-2006 à 16:14:41
mood
Publicité
Posté le 30-11-2006 à 16:14:14  profilanswer
 

n°1484434
Paul Hood
Posté le 30-11-2006 à 16:39:40  profilanswer
 

Avec ca marche
 
For Col = 1 To NbCol
        For lig = 1 To NbLig
         If tableau(Col, lig) = MonChoix Then
            For i = 1 To NbCol
                Range(tableau(i, lig)).Interior.ColorIndex = 3
            Next
            For i = 1 To NbLig
                Range(tableau(Col, i)).Interior.ColorIndex = 3
            Next
            Range(MonChoix).Interior.ColorIndex = 0
             
         End If
        Next
    Next

n°1484455
yanhoupa
Posté le 30-11-2006 à 17:00:16  profilanswer
 

ouii ca marche :)

 

Et le pire c'est que quand je lis le programme je comprend, et j'aurais pu trouver (sauf l'histoire du Chr(64+...)) mais j'arrive pas (encore esperon) a le faire,  comment l'ecrire.

 

En tout cas merci bien a tous et là tout particulierment a toi Paul Hood :jap:


Message édité par yanhoupa le 30-11-2006 à 17:01:14
n°1484553
yanhoupa
Posté le 30-11-2006 à 18:53:30  profilanswer
 

re :d
 
voila pour tes soucis de majuscule je demande ceci :

Code :
  1. If votre_classe = "qlio1" Or votre_classe = "Qlio1" Or votre_classe = "QLIO1" Then


Et ceci ne marche pas :

Code :
  1. If votre_classe = "qlio1" Or "Qlio1" Or "QLIO1" Then


Il a t-il un moyen simple de simplifier les choses (eviter de recopier votre_classe plein de fois) ?

n°1484555
FlorentG
Unité de Masse
Posté le 30-11-2006 à 18:54:23  profilanswer
 

pouet, le mieux est de le recopier à chaque fois... Ou avec un select case ?

n°1484558
yanhoupa
Posté le 30-11-2006 à 18:55:54  profilanswer
 

ok, c'est pas grave, c'etait pour savoir, pour eviter de charger le truck mais bon ya que ça donc c'est pas grave, mais merci

n°1484579
yanhoupa
Posté le 30-11-2006 à 19:30:38  profilanswer
 

donc j'ai un soucis  [:supermimy]
 
c'est le trie a bulle :o
 
Dans une colone un tableau de 10 valeurs non triées déja entrées (en A1), et dans une autre les valeur trié vide au debu (B2 par exemple).
 
j'ai cela :
 

Code :
  1. Sub tri_bulle()
  2. Dim tableau3(1, 10) As Single
  3. Dim i As Integer
  4. Dim j As Integer
  5. Dim a As Integer
  6. For i = 1 To 10
  7.     tableau3(1, i) = Cells(1, i)
  8. Next i
  9. For i = 1 To n - 1
  10.     For j = 1 To 10 - i
  11.         If tableau3(1, i) > tableau3(1, i + 1) Then
  12.             a = tableau3(1, i)
  13.             tableau3(1, i + 1) = tableau3(1, i)
  14.             tableau3(1, i) = a
  15.         End If
  16.     Next j
  17. Next i
  18. End Sub


 
je sais pas si ca marche, mais en tout cas ça ne m'affiche aucune valeur. Si ya une methode mieu (mais aussi simple (ou preske)), merci de proposer :jap:

n°1484604
seniorpapo​u
Posté le 30-11-2006 à 20:12:16  profilanswer
 

Bonsoir,
je n'ai pas suivi le problème des majuscules, mais tu peux essayer ceci:
 
If ucase(votre_classe) = "QLIO1" then
Cordialement

n°1484607
yanhoupa
Posté le 30-11-2006 à 20:21:17  profilanswer
 

merci ca marche :)
 
sinon tu peux pas m'aider pour mon tableau de 10 lignes et 1 colone rempli de valeur non triés a placer dans une colonce a coté mais triés cette fois si ?

n°1484610
yanhoupa
Posté le 30-11-2006 à 20:28:25  profilanswer
 

enfin meme jsute des bon tuto qui parle de trie de valeurs d'un tableau, j'ai cherché deja mais j'ai pas trouver.
 
merci d'avance

mood
Publicité
Posté le 30-11-2006 à 20:28:25  profilanswer
 

n°1484655
seniorpapo​u
Posté le 30-11-2006 à 21:59:18  profilanswer
 

Bonsoir,
trouvé à cette adresse:
http://xlbysteph.free.fr/aideinfor [...] _vba_2.htm
 
le sub suivant qui peut t'inspirer
 Sub BubbleSortExample()
 
 
 Dim myArray As Variant
 myArray = Array(2, 5, 3, 1, 4, 1)
 First = LBound(myArray)
 Last = UBound(myArray)
 myMessage = ""
 For i = First To Last
 myMessage = myMessage & myArray(i)
 Next i
 MsgBox "Unsorted order is " & myMessage
 'Here's the actual bubble sort routine
 For i = First To Last - 1
 For j = i + 1 To Last
 If myArray(i) > myArray(j) Then
 Temp = myArray(j)
 myArray(j) = myArray(i)
 myArray(i) = Temp
 End If
 Next j
 Next i
 myMessage = ""
 For i = First To Last
 myMessage = myMessage & myArray(i)
 Next i
 MsgBox "Sorted order is " & myMessage
 End Sub
 
 
Question: tu veux voir afficher les résultats où?
 
Si tu ne dis pas dans ton code de mettre les résultats dans les cellules, elle resteront dans le tableau, donc nonvisibles
Cordialement
 
 

n°1484660
yanhoupa
Posté le 30-11-2006 à 22:09:56  profilanswer
 

Bonsoir,

 

déjà merci de prendre le temps d'essayer de m'aider

 

En clair :

 

J'ai un tableau de 10 lignes et 1 colone en A de valeurs non trié. Et comment en B (par exemple) les avoir triées ?

 

http://pix.nofrag.com/26/f3/6cbac1c4550dbc1d1a4a39a9484d.jpg
PS : en plus, en recopiant le tableau je me suis trompé, j'ai mis 2 fois 30, mais c'est pas important.

 

Merci d'avance


Message édité par yanhoupa le 30-11-2006 à 22:10:17
n°1484664
yanhoupa
Posté le 30-11-2006 à 22:16:52  profilanswer
 

j'ai fait ca deja : je sens j'y suis presque
 

Code :
  1. Sub tri_bulle()
  2. Dim tableau3(10) As Single
  3. Dim i As Integer
  4. Dim j As Integer
  5. Dim a As Integer
  6. For i = 1 To 10
  7.     tableau3(i) = Cells(i)
  8. Next i
  9. For i = 1 To 10 - 1
  10.     For j = 1 To 10 - i
  11.         If tableau3(i) > tableau3(i + 1) Then
  12.             a = tableau3(i)
  13.             tableau3(i + 1) = tableau3(i)
  14.             tableau3(i) = a
  15.         End If
  16.     Next j
  17. Next i
  18. For i = 1 To 10
  19.     Cells(i, 2) = tableau3(i)
  20. Next i
  21. End Sub


 
programme legerment edité


Message édité par yanhoupa le 30-11-2006 à 22:35:10
n°1484673
yanhoupa
Posté le 30-11-2006 à 22:48:11  profilanswer
 

avec mon programme, il me met dans la colone B que le premier chiffre :

 

exemple :

 

A       B

 

12     12
10     12
78     12
45     12
14     12
78     12
14     12


Message édité par yanhoupa le 30-11-2006 à 22:48:34
n°1484709
seniorpapo​u
Posté le 01-12-2006 à 07:25:08  profilanswer
 

Bonjour,
regardes bien ta séqence de "bascule" de valeur:
a = tableau3(i)  qu'as-tu dans a?          
 tableau3(i + 1) = tableau3(i) qu'as-tu dans tableau de i+1?
 tableau3(i) = a  qu'as-tu dans tableau(i)?
 
 
dis moi où est passé tableau3(i+1)?
à quoi set de boucler sur j avec i invariable ?
Cordialement


Message édité par seniorpapou le 01-12-2006 à 07:35:24
n°1484713
yanhoupa
Posté le 01-12-2006 à 07:31:08  profilanswer
 

ok je vois :)
 
mais j'ai mis ca :
 
            a = tableau3(i + 1)
            tableau3(i + 1) = tableau3(i)
            tableau3(i) = a
 
ca marche pas plus :/

n°1484716
seniorpapo​u
Posté le 01-12-2006 à 07:37:27  profilanswer
 

bonjour,
j'ai fait un petit edit sur le post précédent

n°1484717
yanhoupa
Posté le 01-12-2006 à 07:42:03  profilanswer
 

ok la boucle j sert a rien, j'ai enlever mais ca marche toujours pas
 
le programme me donne ca :
 
A   B
 
50  0
12  0
60  0
30  0
45  50
 
 
comme si il voyait que 50 était plus grand que tout les autre variable et que donc il metait zero aux autres... :(

n°1484718
seniorpapo​u
Posté le 01-12-2006 à 07:42:35  profilanswer
 

Pour suivre le fil je suis obligé de passer de "programma simple ..." à ton autre post .
peut-on passer sur l'autre, le sujet étant strictement le même?

n°1484719
seniorpapo​u
Posté le 01-12-2006 à 07:44:29  profilanswer
 

la boucle j sert à quelque chose, c'est l'indice i à l'intérieur qui devrait être = j     et  j+1
 

n°1484720
yanhoupa
Posté le 01-12-2006 à 07:44:49  profilanswer
 
n°1485824
Papy Octet
Posté le 03-12-2006 à 23:44:22  profilanswer
 

Columns("col:col" ) demande la lettre de la colonne : Columns("A:A" ) or la valeur de la colonne dans ton code est un entier, pas une lettre !
Idem pour la ligne suivante.

n°1485842
seniorpapo​u
Posté le 04-12-2006 à 06:59:18  profilanswer
 

Bonjour Papy Octet,
Tu as fait comme je le fais souvent: tu as oublié de passer à la page 2 du post. lol
Cordialement

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C++]Factorisation Cholesky qui marche pasFormulaire mailto ne marche pas sur IE
[PHP] Marche sous Easyphp mais pas sous wamp?[SED] Remplacement simple d'une chaine avec espace
[ C ] erreur dans mon programme ?[processing] programmer un jeu simple
Programme pour algorithmeCompiler ce petit programme
Titre avec ligne (tout simple mais IE ne veut pas)Question tres simple : cloner un tableau
Plus de sujets relatifs à : un programme simple qui marche pas (en If et Else)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR