* Bonjour *
Comment determiner automatiquement les 5 maladies les plus récurrentes dans différentes zones de santé à l aide d Excel? Merci
Version imprimable
* Bonjour *
Comment determiner automatiquement les 5 maladies les plus récurrentes dans différentes zones de santé à l aide d Excel? Merci
Bonjour,
Sans exemple de données, c'est difficile de répondre...
D'après moi, un simple formule NB.SI pourrait suffire selon ce que je comprends...
Bonjour,
Merci pour votre attention particulière. Je voudrais bien vous envoyer le fichier Excel mais Je ne sais comment le faire ici. Merci de m aider.
Ce serait inutile : la majorités des participants de ce forum n'ouvrent pas les pièces jointes.
Par contre, tu peux placer une copie d'écran pour montrer comment sont organisées tes données ou bien décrire la structure de ton fichier (colonnes dans lesquelles se trouvent les différentes données, lignes de début et de fin, etc.).
…PERIODE ZS KIBUNZI ZS LUOZI ZS MANGEMBO… 5 maladies les plus recurrentes du mois 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 janv.-16 Paludisme Anémie IRA Diarrhées HTA Paludisme IRA HTA Diarrhées Malnutrition Paludisme Verminose IRA HTA Diarrhées Paludisme Diarrhées Anémie févr.-16 Paludisme Anémie IRA Diarrhées HTA Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Verminose HTA Diarrhées IRA Diarrhées Anémie mars-16 Paludisme IRA Anémie Diarrhées Fièvre typhoïde Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Verminose HTA Diarrhées Paludisme IRA Anémie avr.-16 Diarrhées Paludisme Malnutrition Malnutrition HTA Diarrhées HTA HTA Paludisme Malnutrition Diarrhées IRA Diarrhées Anémie Verminose Malnutrition HTA IRA mai-16 Fièvre typhoïde IRA Anémie Diarrhées Paludisme Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Anémie Diarrhées Verminose IRA IRA Fièvre typhoïde juin-16 Paludisme Anémie IRA Diarrhées HTA Paludisme IST HTA Diarrhées Malnutrition Paludisme Verminose IRA HTA Diarrhées Paludisme HTA Anémie juil.-16 Paludisme IRA Anémie Diarrhées HTA Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Verminose Diarrhées HTA Paludisme HTA Anémie août-16 Paludisme HTA Anémie Diarrhées Diarrhées Malnutrition IST IST HTA Diarrhées Diarrhées Verminose IRA Diarrhées HTA Diarrhées Diarrhées Paludisme
Tu pourrais te créer une autre table avec toutes les dates et/ou tous les noms de maladies et les compiler.
C'est selon le résultat que tu souhaites avoir.
Pièce jointe 237904
Il suffit de faire un NB.SI et copier dans chaque cellule. Ici, les noms de maladies sont en ligne 14...
Code:=NB.SI(3:3;B$14)
Je vais encore bien vous expliquer. Chaque ligne représente le mois de l’année et nous avons autant de zones de santé comme en-têtes de colonnes. Dans chaque zone de santé, il y a 5 noms de maladies les plus récurrentes qui reviennent chaque mois dans autant de zones de santé. Alors ce que je vais c’est de trouver automatiquement dans 5 autres cellules, selon la plage de données, les noms (et non les chiffres) de la 1ere, 2ème, … 5ème maladie qui revient le plus souvent dans chaque ligne ou mois.
Merci beaucoup mon frère.
Je vais encore bien vous expliquer. Chaque ligne représente le mois de l’année et nous avons autant de zones de santé comme en-têtes de colonnes. Dans chaque zone de santé, il y a 5 noms de maladies les plus récurrentes qui reviennent chaque mois dans autant de zones de santé. Alors ce que je vais c’est de trouver automatiquement dans 5 autres cellules, selon la plage de données, les noms (et non les chiffres) de la 1ere, 2ème, … 5ème maladie qui revient le plus souvent dans chaque ligne ou mois.
Merci beaucoup mon frère.
À partir du tableau que je génère de A14 à K22, dans ce cas-ci, tu peux le trier et afficher les noms des premières colonnes.
Sur double-click d'une cellule d'une ligne, la macro trie le tableau et affiche un message avec les 5 maladies les plus importantes.
Si tu veux, tu peux inscrire ces valeurs plutôt que de les mettre dans un MsgBox
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim I As Integer, Ligne As Long Dim nbColonnes As Long Dim strTemp As String 'Considérer seulement les lignes avec des dates If Target.Row < 15 Or Target.Row > 22 Then Exit Sub 'Modifier la plage selon Cancel = True 'Sortir du mode Édition nbColonnes = Cells(14, Columns.Count).End(xlToLeft).Column Ligne = Target.Row 'Trier la ligne qu'on double-clique ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range(Cells(Ligne, 2), Cells(Ligne, nbColonnes)) _ , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range(Cells(14, 2), Cells(22, nbColonnes)) 'Modifier le 22 au besoin .Header = xlGuess .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With For I = 2 To 6 strTemp = strTemp & Cells(14, I) & vbCrLf Next MsgBox "Les maladies pour le mois " & Format(Range("A" & Target.Row), "mmmm") & " sont:" & vbCrLf & _ strTemp, vbInformation, "" End Sub
Bonjour,
Il me paraît toujours compliqué. De fois les résultat ne change pas même quand on vient à changer les données. Aussi l encodage sur vbase montre de fois des erreurs de débogage et autres.
Merci pour votre aide.
Si tu pouvais mettre un fichier texte (ou encore un fichier xlsx, sans macro) avec certaines données comme tu les as et aussi le résultat que tu voudrais avoir à la fin, ça aiderait.
Svp, je n arrive pas a bien vous coller le tableau ici. Si vous pouvez me passer même votre adresse électronique que vous transmette le tableau.PERIODE ZONE DE SANTE A ZONE DE SANTE B ZONE DE SANTE C Résultats: 5 premières maladies les plus recurrentes du mois 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 janv.-16 Paludisme Anémie IRA Diarrhées HTA Paludisme IRA HTA Diarrhées Malnutrition Paludisme Verminose IRA HTA Diarrhées IRA Diarrhées Diarrhées HTA Paludisme févr.-16 Paludisme Anémie IRA Diarrhées HTA Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Verminose HTA Diarrhées Paludisme Diarrhées Diarrhées HTA Anémie mars-16 Paludisme IRA Anémie Diarrhées Fièvre typhoïde Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Verminose HTA Diarrhées Paludisme IRA Diarrhées HTA Anémie avr.-16 Diarrhées Paludisme Malnutrition Malnutrition HTA Diarrhées HTA HTA Paludisme Malnutrition Diarrhées IRA Diarrhées Anémie Verminose Diarrhées Malnutrition HTA Paludisme IRA mai-16 Fièvre typhoïde IRA Anémie Diarrhées Paludisme Paludisme IRA HTA Diarrhées Malnutrition Paludisme IRA Anémie Diarrhées Verminose IRA Diarrhées Paludisme Fièvre typhoïde Anémie
Merci
Sur autant de zones de santé au sein de laquelle j’ai connais déjà les noms des 5 premières maladies les plus récurrentes ou importantes au cours du mois. Je voulais avoir automatiquement, grâce à un macro-commande, à partir de ces données existantes, les noms de 5 premières maladies les plus importantes du mois pour le total de mes zones de santé*(reprises dans les 5 colonnes à droite); si plusieurs maladies ont la même occurrence je garde la première en allant de gauche à droite.
Dans ce macro, je voudrais automatiser les résultats de sorte que chaque fois que je saisie une nouvelle maladie ou que j’insère une nouvelle zone de santé avec ses 5 premières maladies, les résultats changent automatiquement dans les 5 colonnes à droite suivant les mois (ou lignes) de l’année.
Sincères remerciements.
Est-ce qu'il y a toujours un maximum de 4 sections de 5 maladies par mois ?
Si oui, on peut mettre le résultat à droite
Sinon, il faudrait le mettre en-dessous.
Oui, on a une section pour les 12 mois de l année, une autre au milieu pouvant contenir autant de zones de santé et dans chacune de ces zones on enregistre 5 principales (5 colonnes) maladies apparaissant au cours de 12 mois. Maintenant dans la dernière section apparaissent les résultats, les 5 cellules qui déterminent les noms de 5 principales maladies pour autant de zones de santé de façon automatique.
Cordialement.
Les 5 cellules de 5 principales maladies sur autant de zones devraient apparaître à droite évidemment.
Combien y a-t-il de zones santé possibles ?
Ca peut aller même jusqu'à 700 zones de santé.
Plutôt même jusqu'à 50 ou 100 zones de santé
Oui , sur une ligne qui représente un mois, on a 5 maladies sur autant de zones de santé ,50 par exemple, donc 5*50 zones, maintenant le macro va décider quelles sont les 5 maladies qui reviennent plus dans ces 50 zones.
Merci
Ainsi de suite pour les 12 mois ou 12 lignes
Commence par effacer tes résultats à droite et essaie ceci.
Je tiens en compte que les mois commencent en ligne 3 et j'utilise les lignes 20 et suivantes pour copier les valeurs temporaires transposées.
À changer au besoin
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub Resultat() Dim I As Long Dim nbLignes As Long, nLignes As Long Dim nbColonnes As Long Dim ColonneResultat Application.ScreenUpdating = False nbLignes = Cells(Rows.Count, "A").End(xlUp).Row For I = 3 To nbLignes 'commence la boucle en ligne 3 nbColonnes = Range("A" & I).End(xlToRight).Column 'nombre de colonnes à traiter ColonneResultat = nbColonnes + 2 'Première colonne où coller les résultats Range(Cells(I, 2), Cells(I, nbColonnes)).Copy 'Copie temporaire de la ligne en colonne A en A20 Range("A20").PasteSpecial xlPasteValues, Transpose:=True nLignes = Cells(Rows.Count, "A").End(xlUp).Row Range("B20:B" & nLignes).Formula = "=COUNTIF(A$20:A$" & nLignes & ",A20)" 'Formule de décompte Range("B20:B" & nLignes).Copy Range("B20:B" & nLignes).PasteSpecial xlPasteValues Range("A20:B" & nLignes).Sort key1:=Range("B20"), Order1:=xlDescending, Header:=xlNo Range("$A$20:$B$" & nLignes).RemoveDuplicates Columns:=1, Header:=xlNo 'Supprime les doublons Range("A20:A24").Copy 'Copie au bout de la ligne Cells(I, ColonneResultat).PasteSpecial xlPasteValues, Transpose:=True Range("A20:B" & nLignes) = "" 'Efface les données temporaires Next Application.ScreenUpdating = True End Sub
Vraiment merci beaucoup pour cette conversation. J ai maintenant un modèle que je souhaitais. Merci