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 SubCe 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
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- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
