Code VBA et changement de feuille excel
Meyfarth
-
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 vous explique mon problème :
J'aimerais faire une macro qui mette à jour des cellules en fonction de la semaine en cours et la semaine précédente. Concrètement, j'ai une colonne "cumul", qui a pour valeur le cumul de toutes les semaines précédentes. Cette colonne est dans chaque feuille (les feuilles étant les semaines) et se calcule en fonction du cumul de la semaine précédente et des chiffres de la semaine en cours.
Le problème étant qu'il me fait une erreur '1004' Erreur définie par l'application ou par l'objet.
Je vous colle le bout de code qui ne fonctionne pas :
Sub MaJ()
Dim Semaine As Integer
Dim SemainePrec As Integer
Dim FormuleSom As String
Dim FormuleMoy As String
Semaine = Val(InputBox("Quelle semaine? (Le numéro seulement)"))
SemainePrec = Semaine - 1
Range("A50") = "''S" & SemainePrec & "'"
FormuleSom = "=SOMME(RC[-2];" & Range("A50") & "!RC)"
FormuleMoy = "=MOYENNE(RC[-2];'S" & Range("A50") & "'!RC)"
ChangeLiens
Range("H35").FormulaR1C1 = FormuleSom
EndSub
Seule la ligne Range("H35")FormulaR1C1 = FormuleSom pose problème ...
J'aimerais qu'il mette dans la cellule en question : =SOMME(RC[-2];'S49'!RC) (le S49, comme vous l'avez compris, varie en fonction de la semaine dans laquelle on se trouve)
Des idées ?
Je vous explique mon problème :
J'aimerais faire une macro qui mette à jour des cellules en fonction de la semaine en cours et la semaine précédente. Concrètement, j'ai une colonne "cumul", qui a pour valeur le cumul de toutes les semaines précédentes. Cette colonne est dans chaque feuille (les feuilles étant les semaines) et se calcule en fonction du cumul de la semaine précédente et des chiffres de la semaine en cours.
Le problème étant qu'il me fait une erreur '1004' Erreur définie par l'application ou par l'objet.
Je vous colle le bout de code qui ne fonctionne pas :
Sub MaJ()
Dim Semaine As Integer
Dim SemainePrec As Integer
Dim FormuleSom As String
Dim FormuleMoy As String
Semaine = Val(InputBox("Quelle semaine? (Le numéro seulement)"))
SemainePrec = Semaine - 1
Range("A50") = "''S" & SemainePrec & "'"
FormuleSom = "=SOMME(RC[-2];" & Range("A50") & "!RC)"
FormuleMoy = "=MOYENNE(RC[-2];'S" & Range("A50") & "'!RC)"
ChangeLiens
Range("H35").FormulaR1C1 = FormuleSom
EndSub
Seule la ligne Range("H35")FormulaR1C1 = FormuleSom pose problème ...
J'aimerais qu'il mette dans la cellule en question : =SOMME(RC[-2];'S49'!RC) (le S49, comme vous l'avez compris, varie en fonction de la semaine dans laquelle on se trouve)
Des idées ?
A voir également:
- Code VBA et changement de feuille excel
- Code ascii - Guide
- Word et excel gratuit - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Changer de dns - Guide
2 réponses
C'est bon, j'ai trouvé le problème à forces de petites modifications :
j'ai mis des virgules à la place des points-virgules
J'ai supprimé la ligne "Range("A50") = "" ...
J'ai modifié les lignes des formules par :
FormuleSom = "=SUM(RC[-2],S'" & SemainePrec & "!RC)"
L'autre idem avec AVERAGE à la place de SUM
J'ai remplacé la ligne "Range("H35").formulaR1C1 par deux lignes :
Range("H35").Select
ActiveCell.FormulaR1C1 = FormuleSom
j'ai mis des virgules à la place des points-virgules
J'ai supprimé la ligne "Range("A50") = "" ...
J'ai modifié les lignes des formules par :
FormuleSom = "=SUM(RC[-2],S'" & SemainePrec & "!RC)"
L'autre idem avec AVERAGE à la place de SUM
J'ai remplacé la ligne "Range("H35").formulaR1C1 par deux lignes :
Range("H35").Select
ActiveCell.FormulaR1C1 = FormuleSom