Multiplication/division de lignes avec if ET for

rangecami Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je commence VBA, et je souhaite modifier un tableau excel.
Celui ci contient des réponses sur les fréquences de consommation de gens (un consommateur : une ligne, chaque colonne pour un produit différent), qui répondent par jour, semaine, mois...

Je veux que tout mes résultats soient automatiquement mit à la même fréquence (tous en jours).
Donc je dois multiplier/diviser chaque ligne selon la fréquence qu'aura indiqué le consommateur (précisé dans la colonne A).

Pour ça j'ai essayé un code VBA, ici pour passer de semaine à jours :

Private Sub CommandButton1_Click()

Sheets("DonnéesTransformées").Select
Dim cell As Range
Dim i As Integer

For i = 2 To 1000
If Columns("A").Rows(i & ":" & i).Text = "Toutes les semaines" And IsNumeric(cell) = True Then
Rows(i & ":" & i).Value = Rows(i & ":" & i).Value / 7
End If
Next i

End Sub

Mais hélas je ne peux pas faire ça apparemment, ma multiplication ne marche pas, je comprends que VBA me demande une autre façon d'écrire 'diviser le contenu de ma cellule par 7 pour toute la ligne' mais je ne sais pas comment faire.

De plus, je souhaite que si la cellule soit du texte, le calcul ne se fasse pas, donc j'ai mis un and if isnumeric()= true mais je pense que ca ne marche pas...

HELP PLEASE !
A voir également:

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

On ne peut pas diviser toutes les valeurs simultanement, il faut diviser les valeurs une par une.
L'analyse cellule par cellule est bien plus lente que celle d'un tableau des valeurs. Autrement dit, le plus rapide est de charger les valeurs de la plage concernée dans un tableau, de traiter les valeurs et de les remettre en place dans la feuille.
Tu trouveras de nombreux exemples de codes ici :
http://boisgontierjacques.free.fr/index.htm

C'est en forgeant ...
0