XL 2013 a partir des donnees d'une feuille effectuer des calculs sur une autre feuille

jeanluck

XLDnaute Nouveau
Salut chers tous,
merci pour toutes les publications tres enrichissantes que vous partagez. je vous demande de m'aider comment je pourrai faire la somme des plaintes, doleances remerciements, invitations et informations enregistres a chaque mois dans la colonne categorie sur une autre feuille.
merci de votre disponobilite et aide
 

Pièces jointes

  • fichier courrier.xlsx
    21.2 KB · Affichages: 5

JHA

XLDnaute Barbatruc
Bonjour à tous,

Les cellules fusionnées ne sont pas top pour effectuer des calculs. Il y a une colonne supplémentaire masquée "C" pour palier à cela.

A essayer avec nb.si.ens
VB:
=NB.SI.ENS(Tableau1[moisBis];$A2;Tableau1[Categorie];B$1)

JHA
 

Pièces jointes

  • fichier courrier.xlsx
    22.9 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonsoir jeanluck, JHA,

En général les cellules fusionnées et VBA font très bon ménage.

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function TableauCroise(mois$, categorie$, colMois As Range, colCategorie As Range)
Dim plage As Range
Set plage = colMois.Find(mois, , xlValues)
If plage Is Nothing Then Exit Function
Set plage = Intersect(plage.MergeArea.EntireRow, colCategorie)
TableauCroise = Application.CountIf(plage, categorie) 'NB.SI
Le code doit être placé impérativement dans un module standard.

Formule en B2 de la feuille "Recap" =TableauCroise($A2;B$1;Sheet1!$B:$B;Sheet1!$G:$G)

Bonne nuit.
 

Pièces jointes

  • fichier courrier(1).xlsm
    28.1 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour jeanluck, le forum,

Notez que si l'on défusionne ou refusionne des cellules en colonne B de la 1ère feuille le tableau des résultats ne se met pas à jour.

Pour remédier à cela il faut forcer le recalcul des fonctions, par exemple avec ce code dans "Recap" :
VB:
Private Sub Worksheet_Activate()
Sheets("Sheet1").[B1] = "" 'force le recalcul des fonctions TableauCroise
End Sub
La macro se déclenche automatiquement quand on active la feuille.

A+
 

Pièces jointes

  • fichier courrier(2).xlsm
    29.8 KB · Affichages: 4

jeanluck

XLDnaute Nouveau
Bonsoir jeanluck, JHA,

En général les cellules fusionnées et VBA font très bon ménage.

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function TableauCroise(mois$, categorie$, colMois As Range, colCategorie As Range)
Dim plage As Range
Set plage = colMois.Find(mois, , xlValues)
If plage Is Nothing Then Exit Function
Set plage = Intersect(plage.MergeArea.EntireRow, colCategorie)
TableauCroise = Application.CountIf(plage, categorie) 'NB.SI
Le code doit être placé impérativement dans un module standard.

Formule en B2 de la feuille "Recap" =TableauCroise($A2;B$1;Sheet1!$B:$B;Sheet1!$G:$G)

Bonne nuit.
salut, comment traduire en francais cette formule =TableauCroise($A2;B$1;Sheet1!$B:$B;Sheet1!$G:$G)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA