Bonjour a tous
Voila j'ai un petit problème lors de la copie de mes données, vous me direz, mais c'est simple une copie, pourquoi il demande sa.
C'est sur, c'est une question de débutant.
Voila mon code qui effectue mes calculs, et qui me copie toute mes données sur une meme feuille Result.
Problème, il me fodrait plutot que je copie ses données par tranche, "t" sur des feuilles que je crées automatiquement Result"t" à Result"NbTr"
Mais voila, j'ai eu mes données pour la tranche1, mais pas pour les autres
De plus, j'ai un énorme problème de vitesse, 20 minutes pour réaliser cette macro, bon j'avoue elle effectue 65000000 de fois la macro, c'est long.
SI quelqu'un a une méthode pour crtéer des feuilles et copier les valeurs dessus par tranche, en automatique
Je suis preneur
Merci
Voila j'ai un petit problème lors de la copie de mes données, vous me direz, mais c'est simple une copie, pourquoi il demande sa.
C'est sur, c'est une question de débutant.
Code:
Sub C_calu()
Const Pi = 3.141592654
Const DegToRad = 0.017453292
Const FeetToNm = 5278.8713
Const EarthRadius = 636000
Const MetresToNm = 0.000622
Dim i As Long
Dim j As Long
Dim wS As Worksheet
Dim wD As Worksheet
Dim Derlig As Long
Dim NbTr As Integer
Do
NbTr = InputBox("Entrez une valeur de 1 à 256", "Nb Tranches de 2 minutes", 10)
Loop Until (Val(NbTr) > 0) And (Val(NbTr) < 257)
Sheets.Add
ActiveSheet.Name = "Result"
Set wS = Sheets("Result")
Set wD = Sheets("Position convertie")
i = 2
j = 2
Sheets("Position convertie").Select
Derlig = wD.Cells(65536, 10).End(xlUp).Row
For t = 1 To NbTr
For i = 2 To Derlig
If Cells(i, 6).Value <> "" _
And Cells(i, 11).Value = t Then
For j = 2 To Derlig
If Cells(j, 10).Value = Cells(i, 10).Value _
And Cells(i, 6).Value <> Cells(j, 8).Value Then
lati = (DegToRad / 10000) * Cells(i, 2).Value
latj = (DegToRad / 10000) * Cells(j, 2).Value
loni = (DegToRad / 10000) * Cells(i, 3).Value
lonj = (DegToRad / 10000) * Cells(j, 3).Value
cj = Cos(latj)
ci = Cos(lati)
sj = Sin(latj)
si = Sin(lati)
cij = Cos(loni - lonj)
res = (si * sj) + (ci * cj * cij)
GDist = MetresToNm * EarthRadius * (Atn(-res / Sqr(-res * res + 1)) + 2 * Atn(1))
ADiff = Abs(Cells(j, 1).Value - Cells(i, 1).Value) * 100 / FeetToNm
Adist = Sqr((GDist * GDist) + (ADiff * ADiff))
wS.Cells(j, 1).Value = Adist
wS.Cells(j, 4).Value = wD.Cells(j, 11).Value
If Adist < 5 Then
wS.Cells(j, 2).Value = wD.Cells(j, 8).Value
End If
If Adist >= 5 And Adist < 10 Then
wS.Cells(j, 3).Value = wD.Cells(j, 8).Value
End If
End If
Next j
End If
Next i
Next t
End Sub
Voila mon code qui effectue mes calculs, et qui me copie toute mes données sur une meme feuille Result.
Problème, il me fodrait plutot que je copie ses données par tranche, "t" sur des feuilles que je crées automatiquement Result"t" à Result"NbTr"
Mais voila, j'ai eu mes données pour la tranche1, mais pas pour les autres
De plus, j'ai un énorme problème de vitesse, 20 minutes pour réaliser cette macro, bon j'avoue elle effectue 65000000 de fois la macro, c'est long.
SI quelqu'un a une méthode pour crtéer des feuilles et copier les valeurs dessus par tranche, en automatique
Je suis preneur
Merci