cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007
-
14 févr. 2007 à 11:39
aski1er
Messages postés2Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention15 février 2007
-
15 févr. 2007 à 23:09
Bonjour,
Je travaille sur une table dont une des colonnes est la
région (A) et les autres sont des montants de différentes aides (B1, B2, B3
etc....).
Je travaille sur plusieurs onglet (1 par année).
Je cherche a faire une macro qui calcule pour chaque année,
la somme des montants (SumB1, SumB2, SumB3 etc....) mais seulement pour les
exploitations de la région A choisie.
J'ai fait la macro suivante :
Dim ligne As Integer
Dim Sum As Long
Sum = 0
ligne = 2 'mes données démarrent a partir de la seconde ligne'
While Cells(ligne, 14).Value <> Null 'données région sont en colonne 14'
If Cells(ligne, 14).Value = FR62 Then
Sum = Sum + Cells(ligne, 16).Value 'Montants B1'
End If
ligne = ligne + 1
Wend
Sheets("total FR62").Select 'je range mes résultats dans un autre onglet'
Cells(19, 2).Value = Sum
Mais voila, ca ne marche pas du tout. Ca m'écrit 0 dans la
cellule 19,2 de l'onhlet total FR62. Et je non seulement je ne parvient pas a
trouver l'erreur mais en plus je n'arrive pas a faure en sorte qu'il répete ca
pour toutes les colonnes de montants B.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 14 févr. 2007 à 11:57
Ok, alors ne valide pas les réponses! Essaye d'expliquer un peu mieux ton problème, la description de ta feuille excel et les différentes conditions etc...
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 14 févr. 2007 à 13:01
Heu, toute petite question.
Si c'est juste pour faire une somme en fonction d'un critère dans ta colonne A, pourquoi ne pas utiliser tout simplement la formule SOMME.SI ?
Molenn (qui aime bien mettre des formules dans EXCEL )
cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007 14 févr. 2007 à 14:11
Merci, je ne connaissais pas. (en fait je ne connais vraiment pas VBA..........)
Je vais regarder dans l'aide comment ca marche SOMME.SI et je teste pour voir comment je peux m'en servir.
Elendis
cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007 14 févr. 2007 à 15:26
Ah ok, en fait c'est une fonction d'excel.
Merci 1000 fois, c'est vraiment génial !!!!!!!!!!!!!!!!!!!!! et nettement moins tordue que de faire une macro pour ca ;-)
cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007 14 févr. 2007 à 16:52
Mais je continue tout de meme a chercher a la faire marcher car je vais devoir faire le meme genre de travail sauf que ce ne sera pas une simple somme mais une moyenne pondérée et dans ce cas, la fonction SOMME.SI, ne pourra pas m'aider......
Elendis
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 14 févr. 2007 à 16:59
Et bien, de la même façon qu'il existe SOMME.SI, il existe des formules de moyenne déjà toute faite dans Excel.
Et si ce n'est pas suffisant, tu peux tout à fait créer toi même ta moyenne avec par exemple un rapport entre une formule SOMME.SI / NB.SI en fonction de tes critères.
Il faut décomposer ce que tu as besoin d'obtenir, mais s'il ne s'agit que de calculs, ça serait quand même étonnant que tu n'arrives pas à obtenir un résultat à partir de formules, sans une seule ligne de code VBA.
cs_elendis
Messages postés14Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention14 février 2007 14 févr. 2007 à 17:48
en effet si la fonction .SI peut etre rajouter a d'autres fonction comme PRODUIT ou NB, alors je devrais m'en sortir trés bien comme ca.
Merci encore. Et désolée de pauser des questions dont les réponses sont si simple pour nombre d'entre vous.... je ne suis pas une habituer de ce genre d'activité. Mais c'est une trés bonne chose d'y etre confrontée (je me coucherais plus intelligente ;-)
aski1er
Messages postés2Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention15 février 2007 15 févr. 2007 à 05:53
salut voici mon code
Private Sub txtLastName_Change()
On Error Resume Next
If Not Application.WorksheetFunction.IsText(Right(txtLastName, 1)) Then
MsgBox "The character is not correct"
txtLastName = Left(txtLastName, Len(txtLastName) - 1)
End If
Else
MsgBox "correct"
End If
End Sub
et en fait je ve vérifier si le text saisi est une lettre de l'alphabet!
Quelqu'un pourrait il m'aider
aski1er
Messages postés2Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention15 février 2007 15 févr. 2007 à 23:09
ok! merci en fait c'est ce ke j'ai fait!
et voici le code final
If Not ((Asc(Right(txtLastName, 1)) >= 65 And Asc(Right(txtLastName, 1)) <= 90) _
Or (Asc(Right(txtLastName, 1)) >= 97 And Asc(Right(txtLastName, 1)) <= 122)) Then
MsgBox "This character is not correct retype another one", vbInformation, "New Character"
txtLastName = Left(txtLastName, Len(txtLastName) - 1)
txtLastName.SetFocus
End If