Bonjour Jean Marc, le Forum
Je prends ta question pour un exercice VBA, car dans l'absolu on ne ferait pas entrer en jeu une macro pour faire ce que n'importe quelle Fonction de Base est capable de faire nativement sous Excel.
Mais bon pour le Fun de l'exercice voici une méthode basic par boucle sur chaque cellule. Je me suis efforcé de mettre des noms de Variable clairs et explicites.
Sub Calculator()
Dim WSBase As Worksheet
Dim PlageBase As Range
Dim WSWork As Worksheet
Dim TheSummD1 As Double
Dim TheSummF1 As Double
Dim Cell As Range
Set WSBase = Sheets('Synthese')
Set WSWork = Sheets('MaFeuille')
With WSBase
Set PlageBase = .Range('C7:C' & .Range('C65536').End(xlUp).Row)
End With
For Each Cell In PlageBase
If IsNumeric(Cell.Value) Then TheSummD1 = TheSummD1 + Cell.Value
If IsNumeric(Cell.Offset(0, 1).Value) Then TheSummF1 = TheSummF1 + Cell.Offset(0, 1).Value
Next
With WSWork
.Range('D1') = TheSummD1
.Range('F1') = TheSummF1
End With
End Sub
On notera que pour la Variable TheSummF1, je reste dans la même boucle mais j'invoque la Propriété 'Offset' afin de 'Scanner' dans la foulée (après la Colonne 'C') aussi la Colonne 'D' de la Feuille 'Synthese' (WSBase)... Pour t'aider à comprendre cette Méthode :
MsgBox Range('A1').Offset(0, 1)
Signifie que je parle de la cellule 'B1' (Décaler : 0 ligne / 1 Colonne)
Voilà, pour le reste, c'est une boucle basic, avec un test si la valeur est numérique et donc des déclaration d'Objets WorkSheets et Range.
Une autre approche consisterait en VBA à faire ceci :
Sub CalculatorFunction()
Dim WSBase As Worksheet
Dim WSWork As Worksheet
Dim PlageBaseD1 As Range
Dim PlageBaseF1 As Range
Set WSBase = Sheets('Synthese')
Set WSWork = Sheets('MaFeuille')
With WSBase
Set PlageBaseD1 = .Range('C7:C' & .Range('C65536').End(xlUp).Row)
Set PlageBaseF1 = .Range('D7
' & .Range('D65536').End(xlUp).Row)
End With
With WSWork
.Range('D1') = Application.WorksheetFunction.Sum(PlageBaseD1)
.Range('F1') = Application.WorksheetFunction.Sum(PlageBaseF1)
End With
End Sub
Ici quenéni boucle, mais directement des Fonction Excel comprises par VBA.
Bon Après Midi
@+Thierry
EDITION !!!
Sbinz de Mise en Page avec Smiley dans le Code !! lol
Message édité par: _Thierry, à: 11/04/2005 14:38