Mise en forme de données

Bonjour à tous,

Voici mon problème :

J'ai une feuille ayant comme étiquettes la première ligne et la première colonne. Pour chaque couple (ligne, colonne) correspond une valeur numérique.

Je souhaiterai filtrer chacune des colonnes en ne retenant que les valeurs qui sont supérieures à un certain seuil ainsi que l'étiquette qui lui est associée en 1ere colonne.

J'ai réussi à adapter un code que j'ai trouvé sur le net :

Sub FiltreSupZero()

Dim LigneTab As Integer '1ère ligne des données du tableau
Dim LigneResult As Integer '1ère ligne des données du résultat
Dim NbLignes As Integer 'nb de lignes du tableau
Dim LigneEcriture As Integer 'ligne d'écriture du résultat
Dim NbColonnes As Integer 'nb de colonnes du tableau

LigneTab = 2
LigneResult = 20
NbLignes = 11
NbColonnes = 3

'Boucle sur les colonnes
For c = 2 To NbColonnes

LigneEcriture = LigneResult

    'Boucle sur les lignes
    For L = 0 To NbLignes - 1

    If Cells(LigneTab + L, c) > 1 Then
    Cells(LigneEcriture, 2 * c).Value = Cells(LigneTab + L, 1).Value
    Cells(LigneEcriture, (2 * c) + 1).Value = Cells(LigneTab + L, c).Value
    LigneEcriture = LigneEcriture + 1
    End If

    Next L

 Next c
 End Sub

Ce code fait le boulot par contre l'exploitation des résultats n'est pas pratique. Le résultat de la macro s'affiche a partir de la ligne 15.

Celle ci affiche les groupes ainsi que leur sensibilité ayant une valeur > 1 pour chacune des lignes concernées.

Pour que cela soit plus explicite, je joins un classeur d'un cas simplifié. Le résultat que je souhaite atteindre se trouve dans la deuxième feuille. Pouvez m'aider s'il vous plait ?

Merci d'avance pour votre aide

13mise-en-forme.xlsm (20.59 Ko)

Re bonjour,

J'ai pu effectuer la mise en forme voulue, par contre la fonction de seuil ne fonctionne plus...

Quelqu'un pour m'aider s'il vous plait ?

Ci dessous la nouvelle version du code :

Option Explicit

Sub FiltreSeuil()
   Dim kC As Long, kL As Long
   Dim LigneTab As Integer       '1ère ligne des données du tableau
   Dim LigneResult As Integer    '1ère ligne des données du résultat
   Dim NbLignes As Integer       'nb de lignes du tableau
   Dim LigneEcriture As Integer  'ligne d'écriture du résultat
   Dim NbColonnes As Integer     'nb de colonnes du tableau
   Dim Seuil As Single
   '---
   LigneTab = 2
   LigneResult = 15
   NbLignes = 5
   NbColonnes = 4
   Seuil = Cells(1, 7) '--- valeur du seuil en cellule G1
   LigneEcriture = LigneResult
   '--- Boucle sur les colonnes
   For kC = 2 To NbColonnes
      '--- Boucle sur les lignes
      For kL = LigneTab To LigneTab + NbLignes - 1
         If Cells(LigneTab + kL, kC) >= Seuil Then
            Cells(LigneEcriture, 1) = Cells(1, kC)
            Cells(LigneEcriture, 2) = Cells(kL, 1)
            Cells(LigneEcriture, 3) = Cells(kL, kC)
            LigneEcriture = LigneEcriture + 1
         End If
      Next kL
   Next kC
End Sub

Bonjour toutes et tous

@Righilahriz

j'ai placé ton 2ème code dans le même module1

(Option Explicit) en haut du module

et rajouter

Dim c, L

et cela fonctionne

crdlt,

André

ztest11
Rechercher des sujets similaires à "mise forme donnees"