Faire somme suivant motif et texte

Fermé
Mag86 - 25 janv. 2013 à 15:08
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 25 janv. 2013 à 17:42
Bonjour,

Je souhaite créer une fonction sous VBA me permettant de faire la somme des cellules de la colonne "P" si :
- ces cellules ont un motif
- la cellule sur la même ligne mais dans la colonne "L" contient le texte "toto"

J'ai tenté ça mais ça ne fonctionne pas et je tourne en rond malgres que je suis persuadée que c'est simple...

Function SommeCouleur(PlageSomme As Range, PlageCouleur As Range, ValTxt) As Variant
Dim Cel As Range
Dim Som As Double
Application.Volatile
For Each Cel In PlageSomme
If Cel.Interior.Pattern=PlageCouleur.Interior.Pattern And Cel.Cells(Cel, 12)=ValTxt Then
Som=Som+Cel
End If
Next
SommeCouleur=Som
End Function


Merci pour votre aide!

PS : J'espère que vous pourrez lire le code correctement car j'ai bien mis les balises "code" mais sur mon IPhone je ne vois pas la différence...

2 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
25 janv. 2013 à 17:13
Bonjour

essaies ceci
If Cel.Interior.Pattern = PlageCouleur.Interior.Pattern And ActiveSheet.Cells(Cel.Row, 12) = ValTxt Then

bonne suite
1
Merci ccm81, cette fois ça fonctionne !
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
25 janv. 2013 à 17:35
Bonjour,

En complement de ccm81, j'ai vire PlageCouleur parce que d'apres l'enonce du sujet, il n'est pas dit que les cellules colonne P doivent avoir un motif particulier.

A voir

Function SommeCouleur(PlageSomme As Range, Valtxt) As Variant
  Dim Cel As Range
  Dim Som As Double
  
  Application.Volatile
  For Each Cel In PlageSomme
    'Cellule Lx=Valtxt et Cellule Px style de motif <> de pas de Style
    If ActiveSheet.Cells(Cel.Row, 12) = Valtxt And Cel.Interior.Pattern <> xlNone Then
      Som = Som + Cel
    End If
  Next
  SommeCouleur = Som
End Function


Bonne suite
0
Bonjour,
Si elles ont un motif c'est mon premier tiret dans l'énoncé. A moins que je me sois mal exprimée...
Merci à vous
0
Ah j'avais lu trop vite! J'ai compris ce que vous voulez dire, vous avez raison cela simplifie le code.
Merci
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
25 janv. 2013 à 17:42
Re,
Oui, mais votre demande n'est pas que ce soit un motif en particulier ex: barres obliques a droite, d'ou mon test <>xlNone (different de pas de "motif")
0