compteur sous excel... - VB/VBA/VBS - Programmation
Marsh Posté le 07-10-2007 à 14:07:56
noirdez74 a écrit : bonjour, je dois creer un compteur qui affiche ses valeurs entre 0 et 500 avec un incrément de 10. |
tu entends par la 10 20 30 40... 480 490 500 ?
ton do while dans ta boucle for est pourrie...
y a rien qui tourne en fait
tu peux donner l'énoncé exact stp ?
Marsh Posté le 07-10-2007 à 17:28:56
enoncé exact :
crer un compteur qui affiche ses valeurs de 0 a 500 avec un increment de 10 .
mais j'ai changer de facon, voici mon algo:
i,p,b : entier
p->increment
b-> borne
'initialisation'
p=10
b=500
cells(1,2)=0
pour i=2 a ((B+P)/p) faire
cells(i,2)=cells(i-1,2)+p
fin pour
FIN
en fait eau depart je voulais une boucle 'for' qui faisait mes calcul et je voulais incruster une "do while" pour que sa me fasse mes calcul juska la valeur 500...
Marsh Posté le 07-10-2007 à 17:32:38
tu n'as pas du comprendre (ou alors tu l'as mal énoncé) le principe d'incrément de 10...
ton algo me semble faux aussi donc :s
Marsh Posté le 07-10-2007 à 17:40:45
enoncé entier:
proposer un algorithme pour que le compteur affiche ses valeurs entre 0 et 500 avec un increment de 10.
et mon algo transformé en vba marche nikel
sa marche nikel pour si je change la borne ou l'incrementation...en faite l'increment dans cet enoncé c comme compter de 10 en 10. on l'as fait comme ça en TP
Marsh Posté le 09-10-2007 à 16:30:36
Ici tout est faux
L'algorithme et l'orthographe (eau depart , mes calcul)
Il me semble qu'il y a encore beaucoup de tp à faire
Marsh Posté le 10-10-2007 à 16:20:16
De ce que j'ai compris, ça serait bêtement :
Public Sub compteur()
Dim i As Integer
For i = 0 To 500 Step 10
ActiveCell.Value = i
Next
End Sub
edit :
Après relecture de ton premier post, je crois que tu voulais faire ça
(En effet, dans ma première procédure, s'il n'y a que ça, tu risques pas de voir grand chose, si si tu rajoutes un Application.Wait par exemple...)
Sub compteur2()
Dim ra As Range
Set ra = Range("A1" )
ra.Value = 0
For i = 1 To 50
Set ra = ra.Offset(1, 0)
ra.Value = ra.Offset(-1, 0).Value + 10
Next
End Sub
Marsh Posté le 10-10-2007 à 16:29:45
Je trouve dommage de passer par de la programmation VBA pour faire un truc qu'Excel fait très bien par extension de valeurs.
Tapez 0 dans une cellule, puis 10 dans celle du dessous. Sélectionnez ces deux cellules puis étendez la sélection (croix du coin inférieur droit de la cellule du bas) jusqu'en ligne 510 (ou plus), c'est fait !
On a engendré une génération d'obsédés de la macro qui ne connaissent même plus les fonctionnalités de base des logiciels...
edit : oui je sais, je réponds par vraiment à la question
Marsh Posté le 10-10-2007 à 17:23:58
Bah ça dépend du besoin, et manifestement, c'est un exercice, alors... pourquoi pas
Marsh Posté le 11-10-2007 à 11:08:40
C'est bien parce que je pense qu'il s'agit d'un exercice que je trouve cela dément.
On apprend à des utilisateurs comment se passer d'une formation sur un logiciel pour faire en 1 jour avec des macros ce qu'on pourrait faire en 2 heures en connaissant le logiciel.
Il y a d'autres moyens d'apprendre à faire des boucles, dans un contexte productif.
Chaque fois qu'on demande à un débutant d'utiliser VBA alors qu'on peut faire autrement, on l'enfonce.
Avis personnel.
Marsh Posté le 11-10-2007 à 11:45:54
Dans le fond, je suis en partie d'accord avec toi, mais je nuancerais quand même en disant que ça dépend du profil de la personne formée
Etant développeur (principalement VBA Excel dans ma boite...), il est intéressant de connaître les fonctionnalités de base et avancées d'Excel pour la simple et bonne raison que ces fonctionnalités, en cas de besoin, le fait de savoir qu'elles existent permettront de les utiliser en VBA sans pour autant avoir à redévelopper des fonctions ou procédures. En bref, connaître l'existant et savoir l'utiliser (pour ça, l'enregistreur peut-être pratique).
Du coup, j'aurais tendance à te dire que je suis relativement d'accord dans le cas de la formation d'un profil utilisateur, beaucoup moins dans le cadre de la formation d'un développeur (D'ailleurs, je déconseillerais fortement le VBA dans le cadre d'une formation de développeur... )
Marsh Posté le 12-10-2007 à 21:45:59
je suis debutante (ça se voit lol)
mais je m'en sors tres bien dans ce qu'on me demande, et tte faocn vous avez beau me dire que mon deuxieme programme est faux archi faux, il marche nikel lol
hier on a programmer le dessin de l'adn en vba dans powerpoint c'etait trop simple!
Marsh Posté le 07-10-2007 à 11:59:23
bonjour, je dois creer un compteur qui affiche ses valeurs entre 0 et 500 avec un incrément de 10.
j'ai donc fait
sub compteur2
cells(i,2)=0 ' initialisation'
for i=2 to 100
do while cells(i,2) < 500
cells(i,2) = cells(i-1) + 10
loop
next
end sub
je vois pas ce qui cloche, mais ça ne marche pas.
et puis pour mon "for i+2 to 100" j'aimerais bien pouvoir changer le 100 par +l'infini
...
si quelqun peut m'aider ce serais gentil
merci d'avance