Bonjour à tous,
suite a un précédent post ou je demandais comment placer un point sur une image, j'ai aujourd'hui terminé une programmation stable mais à mon gout un peu lente.
Explication de la macro.
Sur une première feuille excel j'ai environ 600 lignes à traiter (soit 600 futures points placés)
je fais actuellement une boucle "for" dans laquelle en fonction d'un valeur de cellule je choisi la couleur du point à placer.
Pour se faire je n'ai pas réussi à faire plus simple que cela:
à chaque points (répété 600 fois)
j’exécute ceci
Pour pouvoir adapter la couleur, je lance 3 fonctions rouge(), vert(), bleu() dans lequel je place l'argument qui permettra de choisir la couleur.
exemple de la fonction vert()
Auriez vous une solution qui me permettrait de ne lancer qu'une seule fonction qui renvoi dans le bon format les 3 valeurs RGB.
J'économiserai déjà 2*600 appels de fonction inutile.
2ieme questions:
Dans cette boucle for j'ai des conditions if. Est il plus rapide de faire cela:
ou cela
D'avance merci à vous
suite a un précédent post ou je demandais comment placer un point sur une image, j'ai aujourd'hui terminé une programmation stable mais à mon gout un peu lente.
Explication de la macro.
Sur une première feuille excel j'ai environ 600 lignes à traiter (soit 600 futures points placés)
je fais actuellement une boucle "for" dans laquelle en fonction d'un valeur de cellule je choisi la couleur du point à placer.
Pour se faire je n'ai pas réussi à faire plus simple que cela:
à chaque points (répété 600 fois)
j’exécute ceci
Code:
Sheets(count).Activate
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, L, T, w, H).Select
With Selection
.Name = "defect_x" & x - 1
.ShapeRange.Fill.ForeColor.RGB = RGB(rouge(k), vert(k), bleu(k))
End With
exemple de la fonction vert()
Code:
Function vert(ByVal k As String) As Integer
vert = 242
If k = "B" Then
vert = 215
End If
If k = "F" Or k = "D" Then
vert = 0
End If
End Function
Auriez vous une solution qui me permettrait de ne lancer qu'une seule fonction qui renvoi dans le bon format les 3 valeurs RGB.
J'économiserai déjà 2*600 appels de fonction inutile.
2ieme questions:
Dans cette boucle for j'ai des conditions if. Est il plus rapide de faire cela:
Code:
If GagnerTps_cote = "LH" And GagnerTps_board = "Outboard" Then
count = 4
End If
If GagnerTps_cote = "LH" And GagnerTps_board = "Inboard" Then
count = 5
End If
If GagnerTps_cote = "RH" And GagnerTps_board = "Outboard" Then
count = 6
End If
If GagnerTps_cote = "RH" And GagnerTps_board = "Inboard" Then
count = 7
End If
ou cela
Code:
If GagnerTps_cote = "LH" Then
if GagnerTps_board = "Outboard" then
count = 4
else
count=5
end if
If GagnerTps_cote = "RH" then
if GagnerTps_board = "Outboard" Then
count = 6
else
count=7
End If
If GagnerTps_cote = "RH" And GagnerTps_board = "Inboard" Then
count = 7
End If
D'avance merci à vous