VBA Formule sur colonne

Bonjour à tous,

Je suis bloqué sur VBA et fais appel à votre aide.

En effet, je souhaite calculer les ecartypes de chaque colonne remplie de la Feuille1 (mais à partir de la ligne 6) puis de les transposer sur une autre feuille (--> Feuille2). J'ai exposé un exemple du résultat que je souhaiterais dans la feuille2.

Mon code n'arrive pas à appliquer la formule de l'écartype sur une autre feuille et je ne comprends pas trop pourquoi étant donné que je la cite correctement dans la sélection du range! De plus, je suis débutant je ne sais pas comment boucler sur les colonnes jusque la dernière remplie.

Auriez-vous une solution?

Merci beaucoup, Sidi13

4classeur1.xlsm (21.62 Ko)

Bonjour,

plage te donne uniquement des adresses de la feuille 1 mais ensuite elles sont appliquées sur la feuille 2 ici !!

Worksheets("Feuil2").Range("B15").Formula = "=STDEV(" & plage & ")"

mais en plus, plage est ici un mix entre feui1 et feuil2 !!! car tu ne spécifies pas que Cells(Rows.Count, 1).End(xlUp).Row est en fait sur Feuil1

plage = Worksheets("Feuil1").Range("B6", "B" & Cells(Rows.Count, 1).End(xlUp).Row).Address

Tu devrais écrire ceci (en respectant ta syntaxe)

    plage = "Feuil1!" & Worksheets("Feuil1").Range("B6", "B" & Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row).Address  'Colonne
    Worksheets("Feuil2").Range("B15").Formula = "=STDEV(" & plage & ")"   'Ecart-type fonction

Salut,

Merci pour ton aide Steelson !! c'est exactement ce que je voulais, et je comprends mon erreur.

Néanmoins, saurais-tu comment je pourrais m'y prendre pour réaliser comme une boucle, c'est-à-dire que à chaque fois qu'une colonne est calculée et reportée, passer à la suivante et les disposer à la suite sur la feuille2?

Merci beaucoup,

Mis dans un module

Sub volatilite()
  'Import

'Transposer colonne des noms de stocks
    Worksheets("Feuil1").Range("B5:ZZ5").Copy
    Worksheets("Feuil2").Range("A3").PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks _
                 :=False, Transpose:=True

'Transposer & calcul de la volatilité par stock
For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
    With Worksheets("Feuil1")
    ligne = .Cells(Rows.Count, i - 1).End(xlUp).Row
        plage = "Feuil1!" & Range(Cells(6, i - 1), Cells(ligne, i - 1)).Address 'Colonne
        Worksheets("Feuil2").Range("B3").Offset(i - 3, 0).Formula = "=STDEV(" & plage & ")" 'Ecart-type fonction
    End With
Next

End Sub
9classeur1.xlsm (20.44 Ko)
Rechercher des sujets similaires à "vba formule colonne"