Automatiser des formules avec VBA

  • Initiateur de la discussion Initiateur de la discussion orianne40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

orianne40

Guest
Bonjour,

J'essaye d'automatiser mes fomules excel, le but étant que n'importe qui n'ai qu'à copier coller ses données et de cliquer sur un bouton pour que tout se calcul sans probleme.

Les données (dans l'exemple en feuill1) correspondent à des essais avec des vitesses et des direction de vent. Le nombre de données peut varier jusqu'à plus de 30000.
Le but est de visulaliser sur une feuille (dans l'exemple en feuill2) si un essai est valide ou non (en fonction du vent)
J'ai déjà un fichier avec mes formules mais je n'arrive pas à les retranscrire en VBA...

J'ai commencé par essayer de calculer mes X (abcisses de ma direction de vent) :

Dim ligne As Long
Dim X As Long 'abcisse de mon vecteur vitesse
For
ligne = 2 To Range("B" & Cells.Rows.Count).End(xlUp).Row
X = Cells(ligne, 4) * cos(Cells(ligne, 5) * Pi / 180)
Next ligne

'je range les résultats dans une autre colonne
Cells(ligne, 6).Value = X

mais ça ne marche pas, je ne sais pas trop quoi faire...
 

Pièces jointes

Re : Automatiser des formules avec VBA

Bon, j'ai rien dit,
apres avoirs bidouiller 1h, ça, ça marche


Sub Teste()
With Sheets("Feuil1")
Dim Derlign As Integer
Dim Lign As Integer
Derlign = Range("B" & Cells.Rows.Count).End(xlUp).Row
For Lign = 2 To Range("J" & Cells.Rows.Count).End(xlUp).Row
.Range("l" & Lign) = Evaluate("=180 * Atan2(SumIf(B2:B" & Derlign & ", J" & Lign & ",E2:E" & Derlign & "), SumIf(B2:B" & Derlign & ",J" & Lign & ",F2:F" & Derlign & ")) / pi()")
Next Lign
End With
End Sub
 
Re : Automatiser des formules avec VBA

Félicitations ...

Mais depuis le début de ton post, je pense que, dans ta situation, l'idéal serait de transformer ton code VBA en fonction personnalisée que tu aurais à ta disposition tout le temps ...

A +
 
Re : Automatiser des formules avec VBA

Re

en bon vieux gaulois voila ce que j'ecrirais

Code:
Sub Teste()
With Sheets("Feuil1")
Dim Derlign As Integer
Dim Lign As Integer
Derlign = .Range("B" & Cells.Rows.Count).End(xlUp).Row
For Lign = 2 To .Range("J" & Cells.Rows.Count).End(xlUp).Row
.Range("L" & Lign).FormulaLocal = "=180*ATAN2(SOMME.SI(B2:B" & Derlign & ";J" & Lign & ";E" & Lign & ":E" & Derlign & ");SOMME.SI(B2:B" & Derlign & ";J" & Lign & ";F2:F" & Derlign & "))/PI()"
[COLOR=blue].Range("L" & Lign).Formula = Range("L" & Lign).Value[/COLOR]
Next Lign
End With
End Sub

avec la ligne en bleu en commentaire si tu veux garder la formule

Edit: salut James
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
33
Affichages
3 K
M
Réponses
3
Affichages
1 K
MarieChérie
M
P
Réponses
1
Affichages
710
S
Réponses
3
Affichages
983
Stephandevendee
S
T
Réponses
4
Affichages
6 K
ThomasGLT
T
Réponses
1
Affichages
1 K
C
Réponses
1
Affichages
4 K
Conrad13
C
A
Réponses
48
Affichages
6 K
Ananas94
A
L
Réponses
2
Affichages
658
louloubru
L
T
Réponses
2
Affichages
2 K
ThomasBerth
T
O
Réponses
20
Affichages
4 K
O
Z
Réponses
4
Affichages
1 K
Zhanties
Z
Retour