Pb sur boucles

glm

XLDnaute Occasionnel
Bonsoir le forum,
J'ai un petit soucis sur une boucle
je joint un fichier pour mieux comprendre le phénomène...
Cela bloque sur g=2 et q=45
(je veux faire des additions)
Merci pour vos idées
A+ [file name=exemple_20060223185838.zip size=50265]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20060223185838.zip[/file]
 

Pièces jointes

  • exemple_20060223185838.zip
    49.1 KB · Affichages: 21

porcinet82

XLDnaute Barbatruc
Salut glm,

je vais peut etre repondre a coté de ta question ,mais ton code me semble un peu bizarre. Je ne comprend pas trop ce que tu veux faire avec cette ligne :
Code:
For f = q To v

Je te propose le code suivant pour modifier ta boucle, peut etre que ca te donnera des idées.
Code:
For i = 9 To 20
   Cells(i, 18).Value = Cells(i, 4).Value + Cells(i, 6).Value + Cells(i, 8).Value + Cells(i, 10).Value + Cells(i, 12).Value + Cells(i, 14).Value + Cells(i, 16).Value
Next i

@+
 

porcinet82

XLDnaute Barbatruc
re,

Désolé, je n'etais pas descendu dans la feuille, avec le code suivant ca fonctionne :

Code:
Sub Totaux_v2()
Dim x As Integer, i As Integer
Dim g As Byte

x = 0
Worksheets('horaires').Activate
For g = 1 To 52  'boucle sur 52 semaines
    For i = 9 + x To 20 + x
       Cells(i, 18).Value = Cells(i, 4).Value + Cells(i, 6).Value + Cells(i, 8).Value + Cells(i, 10).Value + Cells(i, 12).Value + Cells(i, 14).Value + Cells(i, 16).Value
    Next i
    x = x + 35
Next g
End Sub

Il me met juste une erreur sur le tableau de la semaine 23, je ne sais pas trop pourquoi, peut etre un problème de format, par contre, en le supprimant ca fonctionne, je te laisse le soin de vérifier ton fichier.

Bonne soirée,

@+

PS: il faut enlever &nbs p; dans la ligne Cells(i, 18).Value&nbs p; =

Message édité par: porcinet82, à: 23/02/2006 19:32
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir glm, porcinet82,

Visiblement, je ne sais pour quelles raisons, tu as un reste de données corrompues et invisibles dans tes cellules J45, L45, N45 et P45 (Excel ne considère pas ces cellules comme étant réellement vides)...
Si tu sélectionnes donc ces cellules et fais un simple appui sur la touche 'Suppr', ta macro fonctionnera à nouveau.

Par ailleurs, si je puis me permettre, si tu prends l'habitude d'utiliser des variables sans même les déclarer en tête de ton code, tu vas au devant de surprises futures...

Cordialement,
 

glm

XLDnaute Occasionnel
je suis désolé mais c'est idem
ton code ou le mien bloque sur la ligne 45
je n'ai pas de différence de format...!(en nombre et pas de MFC)
Y aurait-il une autre solutions?
Est-ce pas un pb de cellule vide?
Mais pourquoi sur cette ligne et si je mets un nombre cela fonctionne mais j'ai un autre soucis sur la ligne 79. Au lieu de faire 4+10=14
il met 4,0010,00...?
le calcul n'est donc pas bon...
Si tu as une autre idée ou qqun d'autres, je la prends volontié...
Merci A+
 

glm

XLDnaute Occasionnel
Bonsoir à tous,
merci pour ta réponse my dear friend
je déclare tjrs mes variables!!!
en fait j'utilise une autre macro pour remplir ces cases, voici un bout du code

Worksheets('horaires').Cells(l, c).Font.ColorIndex = coul
Worksheets('horaires').Cells(l, c).Value = ActiveCell
Worksheets('horaires').Cells(l, c + 1).Font.ColorIndex = coul
Worksheets('horaires').Cells(l, c + 1).Value = Format((TextBox1), '00') & ',' & Format((Min), '00')

J'aurais peut être un pb de format
Je veux additionner des nombres et donc
est-ce la dernière ligne de ce code qui me fait un 'merdier'??
Merci à vous tous pour m'éclairer
A+
 

myDearFriend!

XLDnaute Barbatruc
Re glm,

Tu as raison pour les variables, j'étais sur un autre classeur en même temps et j'ai confondu... :eek:

A vrai dire, il m'est difficile de voir si c'est cette ligne de code, à elle seule, qui cause problème... Cela dit, je te confirme toutefois que tes données 'numériques' ne sont pas toutes considérées comme telles dans ton classeur. Pour le vérifier, tu sélectionnes toutes tes cellules, puis tu leur affectes un alignement Standard en lieu et place de l'alignement Centré : tu verras alors que toutes tes données 'numériques' alignées à gauche des cellules sont considérées comme du texte par Excel... (les vraies données numériques sont alignées automatiquement à droite par défaut dans Excel).

Il conviendrait donc de convertir tes données issues des TextBox en numérique AVANT de les affecter aux cellules. Pour info, les TextBox contiennent des données au format String et la fonction Format que tu utilises, te renvoie également des valeurs String... Pour convertir les données String en numérique, tu as différentes fonctions de conversion à ta disposition dans VBA telles que Cint(), Clng(), Cdec(), etc... (faire une recherche de 'Fonctions de conversion de types de données' dans l'aide).

Cordialement,
 

pierrejean

XLDnaute Barbatruc
voici ton fichier avec une petite correction

il s'agit bien de restes à eliminer ce que je fait avant de faire la somme [file name=exemple1_20060223202824.zip size=50212]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple1_20060223202824.zip[/file]
 

Pièces jointes

  • exemple1_20060223202824.zip
    49 KB · Affichages: 20

glm

XLDnaute Occasionnel
Merci à tous,
Alleluia...
c'est my dearfriend qui a trouvé le point sensible.
j'ai convertit en décimal
Worksheets('horaires').Cells(l, c + 1).Value = CDec(Format((TextBox1), '00') & ',' & Format((Min), '00'))
Cela fonctionne parfaitement
Merci encore...à
pierrejean, mydearfriend et porcinet
Bonne soirée à tout le monde
Vive ce forum
A+ :woohoo: :lol: :)
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 352
Membres
103 824
dernier inscrit
frederic.marien@proximus.