[vba] recopier informations, suite

Résolu/Fermé
edi - 5 août 2008 à 10:14
 edi - 6 août 2008 à 09:55
Bonjour,

Je fais suite à un post qui, gràce a vous m'avait permis de recopier des informations d'un onglet à l'autre.
La macro marche super mais je voudrais l'améliorer

Dans la partie, où je remplis le tableau de mon onglet b, je voudrais pouvoir ajouter que si le numéro est pair,
je rajoute une information. Si le numéro est impair, je ne rajoute pas cette info.
Comment imbriquer mon if ?

For Each c In Range([AK2], [AK65536].End(xlUp))
i = 1
Do Until c.Value = num(0, i) Or i > nbNum
i = i + 1
Loop
If c.Value <> "" Then
If i <= nbNum Then
Worksheets("REPARTITION").Range(num(1, i)).Offset(1, 0) = c.Offset(0, -34) & " " & c.Offset(0, -35)
Worksheets("REPARTITION").Range(num(1, i)).Offset(2, 0) = c.Offset(0, -32) & " - " & c.Offset(0, -19)
Worksheets("REPARTITION").Range(num(1, i)).Offset(3, 0) = c.Offset(0, -31) & " - " & c.Offset(0, -18)
==> IF c.Value Not -(Number And 1), Then
==> Worksheets("REPARTITION").Range(num(1, i)).Offset(5, 1) = c.Offset(0, -23) & " - " & c.Offset(0, -24)

Else
nonTrouvé = nonTrouvé + 1
==> END IF
End If
End If
Next c

Merci d'Avance
ed

1 réponse

bonjour,

Allez ! pour ceux qui seraient intéressés par la chooooose...
voici ce que j'ai finalement trouvé


If c.Value = Round((c.Value / 2), 0) * 2 Then
Worksheets("REPARTITION").Range(num(1, i)).Offset(4, 0) = c.Offset(0, -24) & " - " & c.Offset(0, -23)
Else
nonTrouvé = nonTrouvé + 1
End If

Ca marche super bien mais cela fait une boucle supplémentaire et sur 20 000 lignes, il faut doubler le temps de traitement de la macro.
ed
0