Faire somme suivant motif et texte

Mag86 -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

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

    bonne suite
    1
    1. Mag86
       
      Merci ccm81, cette fois ça fonctionne !
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Mag86
       
      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
    2. Mag86
       
      Ah j'avais lu trop vite! J'ai compris ce que vous voulez dire, vous avez raison cela simplifie le code.
      Merci
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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