S
sylvain
Guest
bonsoir le forum,
je souhaiterais faire la moyenne de deux cellules en VBA, jusqu'ici pas de problème. Cependant les données vont par exemple de 0,1346 à 340 000.
Je déclare mes variable comme suit :
Sub moyennegroupe1()
Dim X As Integer, NbFichiers As Integer, Y As Integer, G As Integer, Z As Integer
Dim Tableau() As String
Dim Direction As String
Dim Dossier As String
Dim Valeur As Double
Dim Valeurfinale As Double
Dossier = 'c:\\simoporc\\sauvegarde\\Groupe1'
G = 8 'n° de ligne dans la BDD
Z = 7 'n° de la colonne dans la feuille synthèse
Application.ScreenUpdating = False
'Direction = Dir(ThisWorkbook.Path & '\\*.xls')
Direction = Dir(Dossier & '\\*.xls')
Do While Len(Direction) > 0 'liste tous les classeurs du repertoire
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = Direction
Direction = Dir()
Loop
Worksheets('synthèse').Cells(15, Z).Value = 0
If NbFichiers > 0 Then
For X = 1 To NbFichiers 'boucles sur les classeurs
' pour ne pas prendre en compte le classeur contenant la macro (synthese)
If Tableau(X) <> ThisWorkbook.Name Then
'Nb de truies
For Y = 1 To 1 'boucle sur les produits à récupérer
'recupere la valeur deja existante dans le tableau de synthese
Valeur = ActiveSheet.Cells(Y + 14, Z)
With ActiveSheet.Cells(Y + 14, Z) 'ajout des nouvelles valeurs
.Formula = '='' & Dossier & '\\[' & Tableau(X) & ']' & 'bdd' & ''!' _
& Cells(Y + G, 5).Address
.Value = .Value + Valeur
End With
Next Y
End If
Next X
Valeurfinale = ActiveSheet.Cells(15, Z).Value
Worksheets('synthèse').Cells(15, Z).Value = Valeurfinale / (NbFichiers)
End If
Le code ci dessous marche mais je n'ai pas la précision décimale 4 chiffres après la virgule. Comment puis je déclarer mes variables.
merci d'avance
sylvain
je souhaiterais faire la moyenne de deux cellules en VBA, jusqu'ici pas de problème. Cependant les données vont par exemple de 0,1346 à 340 000.
Je déclare mes variable comme suit :
Sub moyennegroupe1()
Dim X As Integer, NbFichiers As Integer, Y As Integer, G As Integer, Z As Integer
Dim Tableau() As String
Dim Direction As String
Dim Dossier As String
Dim Valeur As Double
Dim Valeurfinale As Double
Dossier = 'c:\\simoporc\\sauvegarde\\Groupe1'
G = 8 'n° de ligne dans la BDD
Z = 7 'n° de la colonne dans la feuille synthèse
Application.ScreenUpdating = False
'Direction = Dir(ThisWorkbook.Path & '\\*.xls')
Direction = Dir(Dossier & '\\*.xls')
Do While Len(Direction) > 0 'liste tous les classeurs du repertoire
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = Direction
Direction = Dir()
Loop
Worksheets('synthèse').Cells(15, Z).Value = 0
If NbFichiers > 0 Then
For X = 1 To NbFichiers 'boucles sur les classeurs
' pour ne pas prendre en compte le classeur contenant la macro (synthese)
If Tableau(X) <> ThisWorkbook.Name Then
'Nb de truies
For Y = 1 To 1 'boucle sur les produits à récupérer
'recupere la valeur deja existante dans le tableau de synthese
Valeur = ActiveSheet.Cells(Y + 14, Z)
With ActiveSheet.Cells(Y + 14, Z) 'ajout des nouvelles valeurs
.Formula = '='' & Dossier & '\\[' & Tableau(X) & ']' & 'bdd' & ''!' _
& Cells(Y + G, 5).Address
.Value = .Value + Valeur
End With
Next Y
End If
Next X
Valeurfinale = ActiveSheet.Cells(15, Z).Value
Worksheets('synthèse').Cells(15, Z).Value = Valeurfinale / (NbFichiers)
End If
Le code ci dessous marche mais je n'ai pas la précision décimale 4 chiffres après la virgule. Comment puis je déclarer mes variables.
merci d'avance
sylvain