Svp pb en vba
usdy
Messages postés
243
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je fais un filtre sur une colonne et je fais la somme des lignes de la colonne concernée.
Quand je lance la macro elle me fais la somme de toutes les lignes même celles qui ne sont pas dans le filtre, j'ai donc fait le code suivant :
Public Sub calcul_quantite()
quantite = 0
Set p = Worksheets("A").Range("Q" & debut+ 1 & ":Q" & fin)
For Each o In p
If Rows(o.Row).Hidden = False Then
quantite = quantite + (i.Value)
End If
Next
Worksheets("A").Range("F2").Value = quantite
End Sub
Mais quand je lance ma macro j'ai une erreur au niveau de la ligne :quantite = quantite + (i.Value) et on me dit :
object required.
merci de m'aider car je n'arrive vraiment pas à trouver.
je fais un filtre sur une colonne et je fais la somme des lignes de la colonne concernée.
Quand je lance la macro elle me fais la somme de toutes les lignes même celles qui ne sont pas dans le filtre, j'ai donc fait le code suivant :
Public Sub calcul_quantite()
quantite = 0
Set p = Worksheets("A").Range("Q" & debut+ 1 & ":Q" & fin)
For Each o In p
If Rows(o.Row).Hidden = False Then
quantite = quantite + (i.Value)
End If
Next
Worksheets("A").Range("F2").Value = quantite
End Sub
Mais quand je lance ma macro j'ai une erreur au niveau de la ligne :quantite = quantite + (i.Value) et on me dit :
object required.
merci de m'aider car je n'arrive vraiment pas à trouver.
2 réponses
Bonjour,
Une première chose : il est préférable et conseillé de déclarer les variables (Option Explicit en début de module). Bien que cela ne soit pas obligatoire, ça permet de savoir ce que représente un objet et ça peut être utile pour la maintenance ...
Remplace : quantite = quantite + (i.Value) par quantite = quantite + (o.Value).
;o)
Une première chose : il est préférable et conseillé de déclarer les variables (Option Explicit en début de module). Bien que cela ne soit pas obligatoire, ça permet de savoir ce que représente un objet et ça peut être utile pour la maintenance ...
Remplace : quantite = quantite + (i.Value) par quantite = quantite + (o.Value).
;o)
merci Polux
Private Sub macro_sauvegarde()
wbk = Application.ActiveWorkbook.Name
'ouverture des fichiers template
Workbooks.Open Filename:="F:\test\temp.xls"
'appel de la fonction macro_fin
macro_fin
'quelques variables utiles
strDate = Format(Date, "dd-mm-yy")
nom = "fichier test"
'chemin d'accès au fichier que l'on va enregistrer
ChDir "C:\test\fin"
ActiveWorkbook.SaveAs Filename:=nom & " " & strDate & ".xls", FileFormat:=xlNormal
Application.ScreenUpdating = True
MsgBox("terminée. Le fichier : " & nom & strDate & ".xls est disponible
Activeworkbook.Close (False)
End Sub
Je n'ai pas testé.
;o)
Je veux créer une feuille dans laquelle chaque cellule est la somme des même cellules de plusieurs autre feuilles, en gros : cellules de feuille A = cellules de feuille B + cellules de feuille C + cellules de feuille D
mais je n'arrive pas à faire ma boucle sachant que le nombre de feuilles dont on fait la somme peut varier.
Est ce que tu aurais une idée ?
merci
;o)