Syntaxe calcul valeur et la renvoyer dans une autre feuille
fab250
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
fab250 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
fab250 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Syntaxe calcul valeur et la renvoyer dans une autre feuille
- Calcul moyenne excel - Guide
- Bruler une feuille de laurier - Guide
- Comment supprimer une feuille sur word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
5 réponses
C'est parce que .End(xlUp) ne s'applique qu'à des range.
Plus d'info : https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa214585(v=office.11)?redirectedfrom=MSDN
Et le . ne se met devant un objet que si tu utilise un "With"
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
Plus d'info : https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa214585(v=office.11)?redirectedfrom=MSDN
Et le . ne se met devant un objet que si tu utilise un "With"
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
Bonjour Fabien
1) inutile de selectioner les feuilles pour y lire ou placer des valeurs
2) tes lignes de macros ne sont pas correctement écrites, il faut mettre :
Lstrw = F_analyse.Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne npn vide de la colonne A
somme = Application.WorksheetFunction.Sum(F_analyse.Range("A4:A" & Lstrw)) 'calcul de la somme de A4 à A derniereligne
f_resultats.Range("A2") = somme ' inscription de la somme en A2 de la 2nde feuille
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
1) inutile de selectioner les feuilles pour y lire ou placer des valeurs
2) tes lignes de macros ne sont pas correctement écrites, il faut mettre :
Lstrw = F_analyse.Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne npn vide de la colonne A
somme = Application.WorksheetFunction.Sum(F_analyse.Range("A4:A" & Lstrw)) 'calcul de la somme de A4 à A derniereligne
f_resultats.Range("A2") = somme ' inscription de la somme en A2 de la 2nde feuille
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Bonjour,
En général, les Select sont inutiles, voire néfastes !
Tu peux écrire :
En général, les Select sont inutiles, voire néfastes !
Tu peux écrire :
Sub Calculs() Dim F_analyse As Worksheet Dim F_resultats As Worksheet Dim LstRw As Long Set F_analyse = ActiveWorkbook.Sheets(1) 'lieu des données= "Analyse " Set F_resultats = ActiveWorkbook.Sheets(2) LstRw = F_analyse.Cells(F_analyse.Rows.Count, 1).End(xlUp).Row F_resultats.Range("A2").FormulaLocal = "=SOMME('" & _ F_analyse.Name & "'!$CT$4:$CT$" & LstRw & ")/(60*1000)" 'et éventuellement, pour remplacer la formule par sa valeur : F_resultats.Range("A2").Value = F_resultats.Range("A2").Value End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pourtant, fonctionne bien.
Je savait pas que Cells() renvoyait un range. ^^
Merci
A moins que ce n'est que sous la version 2003 que End(xlUp) ne fonctionne que avec des range ?
et certainement avant
Merci beaucoup pour cette découverte