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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème de Boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de Boucle

n°1961201
loulou56
Posté le 28-01-2010 à 12:52:24  profilanswer
 

Bonjour ,
 
J'ai crée un petit programme sous VBA pour faire la moyenne par heure, de valeur prises toutes les 10 minutes.
 
Mon programme calcul bien la moyenne, mais ne veut pas écrire mon résultat dans la cellule et ne veut pas continuer (pb de boucle).
 
Si quelqu'un peut m'aider.
 

Code :
  1. Dim C1 As Single
  2. Dim C2 As Single
  3. Dim C3 As Single
  4. Dim C4 As Single
  5. Dim C5 As Single
  6. Dim C6 As Single
  7. Dim s&, z&, w&, x&, y&
  8. x = 3
  9. w = 9
  10. z = 3
  11. y = 2
  12. Do
  13. If y = 7 Then
  14.     MsgBox "la feuille est finie;"
  15.     y = y + 1
  16.    
  17.     'instruction de fin attendue '
  18. Else
  19.         If IsEmpty(ActiveCell.Value) = x Then
  20.             MsgBox "c'est la fin de la colonne;"
  21.             y = y + 1
  22.             w = w + 1
  23.         Else
  24.             C1 = ActiveSheet.Cells(x, y)
  25.             x = x + 1
  26.             C2 = ActiveSheet.Cells(x, y)
  27.             x = x + 1
  28.             C3 = ActiveSheet.Cells(x, y)
  29.             x = x + 1
  30.             C4 = ActiveSheet.Cells(x, y)
  31.             x = x + 1
  32.             C5 = ActiveSheet.Cells(x, y)
  33.             x = x + 1
  34.             C6 = ActiveSheet.Cells(x, y)
  35.             s = C1 + C2 + C3 + C4 + C5 + C6
  36.            
  37.             If s = 0 Then
  38.                 m = 0
  39.                 MsgBox "la somme vaut 0, remplissage de la feuille"
  40.                 ActiveSheet.Cells(w, z).Value = m
  41.             Else: m = s / 6
  42.                 'remplissage de la feuille'
  43.                 ActiveSheet.Cells(w, z).Value = m
  44.             End If
  45.             z = z + 1
  46.             x = x + 1
  47.         End If
  48. End If
  49. Loop While IsEmpty(ActiveSheet.Cells(x, y).Value)
  50. End Sub


 
 
 
 
Merci d'avance.

mood
Publicité
Posté le 28-01-2010 à 12:52:24  profilanswer
 

n°1961447
seniorpapo​u
Posté le 29-01-2010 à 08:11:23  profilanswer
 

Bonjour,
une formule dans excel devrait suffire à régler ton PB. La formule DECALER devrait pouvoir faire l'affaire.
 
Pour répondre à ta question, en voici une:
 
peux-tu nous expliquer ce que tu demande à VB de faire en écrivant cette ligne?
 
"If IsEmpty(ActiveCell.Value) = x Then"
 
Cordialement
 

n°1961452
seniorpapo​u
Posté le 29-01-2010 à 08:26:37  profilanswer
 

Par exemple:
 
=SOMME(DECALER(Feuil1!$A$3;6*(COLONNE()-3);LIGNE()-9;6;1))/6
 
en colonne C     ligne 9 de la feuille où tu veux tes résultats, tu étires à droite puis sur 7 lignes

n°1961547
loulou56
Posté le 29-01-2010 à 14:23:59  profilanswer
 

Merci,
 
En réalité, je voudrais automatiser le tout, c'est pour cela que j'utilise VBA,  
 
La ligne de code If IsEmpty.......permet de passer à la colonne suivante, j'ai corrigé la ligne en mettant IsEmpty(activesheet.cells(x,y))
 
Pour automatiser le tout, j'ai crée une Userform, ainsi j'espère pouvoir exporter ma macro sur les prochains fichiers reçut et juste ne cliquant, avoir ma nouvelle feuille avec les moyennes par heure?
 
Comment programme t-on la création et le remplissage d'une nouvelle feuille avec les résultats des moyennes sous VBA?
 
Comment je peux transcire  la ligne:
=SOMME(DECALER(Feuil1!$A$3;6*(COLONNE()-3);LIGNE()-9;6;1))/6  
 
en langage VBA?
 
Merci de votre aide,
 
 
 

n°1961586
seniorpapo​u
Posté le 29-01-2010 à 17:34:35  profilanswer
 

Bonsoir
Sub dodo()
'pour mettre dans la cellule ligne 9  colonne 3 de la feuil2 la moyenne des cellules 3 à 8 de la colonne 1 se trouvant sur feuil1
'adapte le valeurs.........................
With Sheets("feuil1" )
 
Sheets("feuil2" ).Cells(9, 3) = WorksheetFunction.Sum(.Range(.Cells(3, 1), .Cells(8, 1))) / 6
End With
 
End Sub
 
je ne t'écris pas tout pour que tu puisses faire quelque chose par toi-même.
Cordialement


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème de Boucle

 

Sujets relatifs
URGENT : problème shell windows boucle forProblème avec boucle while qui ne s'arrêt pas
Problème dans ma boucle[VBA] problème dans une boucle
[Oracle & PHP] boucle if dans while : problèmeExcel 2003, problème avec une boucle
[vb] problème de boucle avec datagridviewProblème d'affichage double boucle (mysql_fetch_array)
problème boucle while[PHP} Probleme boucle
Plus de sujets relatifs à : Problème de Boucle


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