macro de supression

L

laurent67

Guest
bonjour et bonne année a tous

mon petit probleme est que j'ai un tableau avec 1050 ligne qui sont repeter 10 fois en fonction de dix capteur different donc en tout 10500 ligne ce que je voudrais c'est faire une moyenne tous les 20 ou 25 valeurs

c'est a dire renplacer les 20 ou 25 ligne par 1 valeur mais il faut la suprimer car le but est d'avoir moins de ligne

merci d'avance laurent
 
L

laurent67

Guest
voici le fichier il y a une colonne date une heure une therm et une valeur ce que je veut c'est avoir 20 ou 25 fois moins de valeur dans heure donc il faut faire la moyenne de valeur

merci d"avance
 

Pièces jointes

  • tempnet.zip
    19.6 KB · Affichages: 20
  • tempnet.zip
    19.6 KB · Affichages: 19
  • tempnet.zip
    19.6 KB · Affichages: 27
H

Hervé

Guest
Bonsoir

Une première approche, très vite fait:

Public Sub vev()
Dim dataheure As New Collection
Dim item
Dim c As Range
Dim i As Integer
Dim cumul As Long
Dim nombre As Long

On Error Resume Next
For Each c In Range("c2:c1055")
dataheure.Add Left(c.Text, 2), Left(c.Text, 2)
Next c

i = 1
For Each item In dataheure
For Each c In Range("c2:c1055")
If Left(c.Text, 2) = item Then
cumul = cumul + c.Offset(0, 2).Value
nombre = nombre + 1
End If
Next c

Range("j" & i).Value = item
Range("k" & i).Value = cumul / nombre
i = i + 1
cumul = 0
nombre = 0
Next item
End Sub

ceci, copie dans la colonne J l'heure et dans la colonne K la moyenne

Tu peut renvoyer ces infos vers une autre feuille.

Est-ceci que tu désirais ?

Salut
Hervé
 
H

Hervé

Guest
re

oups

remplace :

Dim cumul As Long
Dim nombre As Long

par :

Dim cumul As Single
Dim nombre As Single

Hervé tu copiras 100 fois : Tu dois saisir tes déclarations de variables dans la macro et non dans le post, même si posthit est génial, il corrige pas encore tes bêtises.

Désolé

Salut
Hervé
 
C

ChTi'160

Guest
Salut "laurent67"
bonjour à toutes et à tous
avec l'aide de notre maitre en Tableau ,(il n'est pas peintre)j'ai réalisé cette procèdure qui peut sûrement être Modifiée
merci donc Didier (myDearFriend)
A+++
Jean Marie
 

Pièces jointes

  • De_MDf_Pour_laurent67.zip
    32.3 KB · Affichages: 17
  • De_MDf_Pour_laurent67.zip
    32.3 KB · Affichages: 17
  • De_MDf_Pour_laurent67.zip
    32.3 KB · Affichages: 20
H

Hervé

Guest
Bonjour chti, laurent et didier dans l'ombre

Une autre approche par une double collection dictionary, inutile car je pense que laurent à trouver son bonheur, mais le boulot étant fait...


Public Sub vev2()
Dim valeur As Scripting.Dictionary
Dim nombre As Scripting.Dictionary
Dim i As Byte
Dim j As Integer
Dim n As Integer
Dim c As Range

Set valeur = New Scripting.Dictionary
Set nombre = New Scripting.Dictionary
j = 1
n = 1

For Each c In Range("c2:c1055")
On Error GoTo suite:
valeur.Add Left(c.Text, 2), c.Offset(0, 2).Value
Next c

For Each c In Range("c2:c1055")
On Error GoTo suite2:
nombre.Add Left(c.Text, 2), n
Next c

For i = 0 To valeur.Count - 1
Range("j" & j).Value = valeur.keys(i)
Range("k" & j).Value = valeur.Items(i)
Range("l" & j).Value = nombre.Items(i)
Range("m" & j).Value = valeur.Items(i) / nombre.Items(i)
j = j + 1
Next i



Exit Sub
suite:
valeur.item((Left(c.Text, 2))) = valeur.item((Left(c.Text, 2))) + c.Offset(0, 2).Value
Resume Next

suite2:
nombre.item((Left(c.Text, 2))) = nombre.item((Left(c.Text, 2))) + 1
Resume Next
End Sub


Jean- marie nos résultat différent : pour la plage horaire 5 : tu ne trouves que 2 valeurs pour un total de 45 au lieu de 3 valeurs pour un total de 67.5.

Je n'ai pas cherché a comprendre le pourquoi du comment .

Salut
Hervé
 
C

CHti160

Guest
SALUT "Hervé"
oui j'ai constaté celà et quand tu clics sur la troisieme cellule elle T'affiche "6"
surement un arrondi car il y à des dixieme 7 je crois, d'ou la prise en compte de cette Troisieme cellule en catégorie 6
je vais copier ton code c'est super d'avoir autant de grain à moudre
Merci à toi et bonne continuation
A+++
Jean Marie
 
H

Hervé

Guest
re

Tu as raison jean-marie, le 5:59,7 correspond à 6 h, je n'était pas aller voir dans la cellule.

Donc mes résultats sont faux, problème corrigé en pièce jointe.

Salut
Hervé
 

Pièces jointes

  • tempnet.zip
    29.3 KB · Affichages: 31
  • tempnet.zip
    29.3 KB · Affichages: 29
  • tempnet.zip
    29.3 KB · Affichages: 27

Discussions similaires

Statistiques des forums

Discussions
312 787
Messages
2 092 106
Membres
105 208
dernier inscrit
Jo7