Multiplication/division de lignes avec if ET for

Fermé
rangecami Messages postés 1 Date d'inscription lundi 13 février 2017 Statut Membre Dernière intervention 13 février 2017 - Modifié par rangecami le 13/02/2017 à 16:07
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 13 févr. 2017 à 22:15
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
13 févr. 2017 à 22:15
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