Syntaxe pour calculer une valeur e la renvoyer dans une autre feuille

fabdu25

XLDnaute Nouveau
Bonjour,

Je suis novice en écriture de macros avec VB et j’aimerai avoir de l’aide par rapport au problème suivant. J’ai des données qui « tombent » toutes les semaines et j’aimerai les traiter.
Ici, mon but est de calculer une valeur issue d’une colonne de nombre. Cette valeur, j’aimerai la mettre dans une autre feuille.
J’ai essayé d’écrire une macro mais elle ne marche pas encore.

Voici l'ébauche de ma macro:
Sub Calculs()
Dim F_analyse As Worksheet
Dim F_resultats As Worksheet
Dim LstRw As Long
Dim provisoire As Double


Set F_analyse = ActiveWorkbook.Sheets(1) 'lieu des données= "Analyse "
Set F_resultats = ActiveWorkbook.Sheets(2)


F_analyse.Select 'passage dans la feuille des données

LstRw = .Cells(.Rows.Count, 1).End(xlUp).Row => erreur de compilation : référence incorrecte ou non qualifié (mais je ne vois pas pourquoi car pour moi cette variable qui me sert à aller jusqu'à la dernière valeur de la colonne)
provisoire = "=SOMME(&CT$4:$CT$ & LstRw)/(60*1000)" 'somme de la case A4 à la dernière valeure de cette colonne'

F_resultats.Select 'passage dans la feuille des résultats
provisoire = Range("A2") 'provisoire contient la valeur de la case A2'


End Sub



Ici, mon but est d’acquérir la bonne syntaxe pour ensuite la transposer pour beaucoup d’autres calculs.
Merci d’avance pour votre aide.
Cordialement,

Fabien
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Syntaxe pour calculer une valeur e la renvoyer dans une autre feuille

Bonjour Fabien, bonjour le forum,

Quand tu utilises des points (.) devant le code il faut obligatoirement que tu aies un With... au dessus. C'est le problème de ton code tu as écrit :

Code:
F_analyse.Select
au lieu de :
Code:
With F_analyse
Le code complet (si j'ai bien compris) :
Code:
Sub Calculs()
Dim F_analyse As Worksheet
Dim F_resultats As Worksheet
Dim LstRw As Long
Dim provisoire As Double

Set F_analyse = ActiveWorkbook.Sheets(1) 'lieu des données= "Analyse "
Set F_resultats = ActiveWorkbook.Sheets(2)
With F_analyse 'prend en compte l'onglet "F_analyse"
    LstRw = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 1 (=A) pourquoi pas 98 (=CT) ?
    provisoire = Application.WorksheetFunction.Sum(.Range("CT4:CT" & LstRw)) 'définit la variable provisoire
End With 'fin de la prise en compte de l'onglet "F_analyse"
F_resultats.Range("A2").Value = provisoire 'renvoie la valeur de la variable provisoire dans la cellule A2 de l'onglet "F_resultats"
End Sub
Il est toujours préférable d'éviter les Select quand ils ne sont pas nécessaires car ils ne font que ralentir le code...
 

fabdu25

XLDnaute Nouveau
Re : Syntaxe pour calculer une valeur e la renvoyer dans une autre feuille

Bonjour à tous!

Merci beaucoup pour toutes ces explications. C'est vraiment sympa de pouvoir compter sur vous!
Grâce à vous, mon programme avance bien.

Cordialement,


Fabien
 

Discussions similaires

Statistiques des forums

Discussions
312 670
Messages
2 090 745
Membres
104 646
dernier inscrit
Mbark Moustanssir