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 -
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 !
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:
- Multiplication/division de lignes avec if ET for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Partage de photos en ligne - Guide
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
1 réponse
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 ...
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 ...