[RESOLU] Open Office Basic : Problème for each

Open Office Basic : Problème for each [RESOLU] - Divers - Programmation

Marsh Posté le 24-07-2008 à 11:37:35    

Bonjour,
un petit coup de main s'il vous plait.
Lorsque j'exécute cette macro j'ai l'erreur suivante : ma_cellule est déjà définie. késako? :pfff:  

Code :
  1. ub Macro_test
  2. Dim somme1 as integer
  3. Dim somme0 as integer
  4. Dim somme2 as integer
  5. Dim ma_cellule as integer
  6. For each ma_cellule in Range("d2:d305" )
  7. if ma_cellule.value=1 then
  8. somme1=somme1+1
  9. endif
  10. if  ma_cellule.value =0 then
  11.  somme0=somme0+1
  12. endif
  13. if ma_cellule.value =2 then
  14.   somme2=somme2+1
  15. endif
  16. next
  17. msgbox "nombre de 0 : " & somme0
  18. msgbox "nombre de 1 : " & somme1
  19. msgbox "nombre de 2 : " & somme2
  20. End Sub


Message édité par slr56 le 24-07-2008 à 15:40:29
Reply

Marsh Posté le 24-07-2008 à 11:37:35   

Reply

Marsh Posté le 24-07-2008 à 11:40:09    

Ligne 6 => Dim ma_cellule As Range


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 24-07-2008 à 14:09:04    

babasss a écrit :

Ligne 6 => Dim ma_cellule As Range

 

finalement j'essaye avec Do While... Loop car je n'ai pas réussi avec la boucle For :

 
Code :
  1. sub Main
  2. Dim somme1 as integer
  3. Dim somme0 as integer
  4. Dim somme2 as integer
  5. Dim ligne
  6. Dim maFeuille As Object
  7. Dim monDoc As Object
  8. Dim mesFeuilles As Object
  9. monDoc=thisComponent
  10. mesFeuilles=monDoc.Sheets
  11. maFeuille=mesFeuilles.getByName("Feuille1" )
  12. ligne=maFeuille.getCellRangeByName("d5" ).value
  13. Do While ligne<305
  14. if ligne=1 then
  15. somme1=somme1+1
  16.  else if ligne=0 then
  17.   somme0=somme0+1
  18.   else if ligne=2 then
  19.   somme2=somme2+1
  20.   endif
  21.  endif
  22. endif
  23. ligne=ligne+1
  24. Loop
  25. msgbox "nombre de 0 : " & somme0
  26. msgbox "nombre de 1 : " & somme1
  27. msgbox "nombre de 2 : " & somme2
  28. End Sub
 

le problème là est que je ne vois pas comment incrémenter la cellule pour obtenir la valeur de d5 puis d6... jusqu'à d305. Il me faut "déconcaténer" la lettre de la valeur numérique pour pouvoir faire +1 à chaque fois.


Message édité par slr56 le 24-07-2008 à 15:00:13
Reply

Marsh Posté le 24-07-2008 à 15:40:13    

Bon finalement, j'ai trouvé la solution avec une fonction toute faite dans calc. C'est la fonction NB.SI

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed