Problèmes macro sous excel
Résolu
Barbebulle
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Barbebulle Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Barbebulle Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Je masque différentes colonnes d'une feuille jusque là ça va et après, c'est là où cela se gâte, j'aimerai pouvoir masquer des lignes par une macro selon la valeur d'une cellule I72, cette valeur changeant suivant une sélection faite dans un menu déroulant. valeur allant de 1 à 4 et selon cette valeur je masque différentes ligne d'une feuille du classeur. Et je ne suis pas tres doué, donc je vous envoie ma macro et si quelqu'un peut m'aider cela me retirerai une belle épinne du pied.
Un grand merci d'avance.
Sub SYNTHESE()
' Macro SYNTHESE
' Macro enregistrée le 20/12/2008 par PV
' colonnes masquées pour faciliter la lecture de la synthèse
Windows("synthese_2008.xls").Activate
Sheets("point").Select
Cells.Select
Range("B1").Activate
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False
Columns("K:M").Select
Selection.EntireColumn.Hidden = True
Columns("P:R").Select
Selection.EntireColumn.Hidden = True
Columns("U:W").Select
Selection.EntireColumn.Hidden = True
Columns("Z:AB").Select
Selection.EntireColumn.Hidden = True
Columns("AE:AG").Select
Selection.EntireColumn.Hidden = True
Columns("AJ:AL").Select
Selection.EntireColumn.Hidden = True
Columns("AO:AQ").Select
Selection.EntireColumn.Hidden = True
Columns("AT:AV").Select
Selection.EntireColumn.Hidden = True
Columns("AY:BA").Select
Selection.EntireColumn.Hidden = True
Columns("BD:BF").Select
Selection.EntireColumn.Hidden = True
Columns("BI:BK").Select
Selection.EntireColumn.Hidden = True
Columns("BN:BP").Select
Selection.EntireColumn.Hidden = True
Columns("BS:BU").Select
Selection.EntireColumn.Hidden = True
Columns("BX:BZ").Select
Selection.EntireColumn.Hidden = True
Columns("CC:CE").Select
Selection.EntireColumn.Hidden = True
Columns("CH:CJ").Select
Selection.EntireColumn.Hidden = True
Columns("CM:CO").Select
Selection.EntireColumn.Hidden = True
Columns("CR:CT").Select
Selection.EntireColumn.Hidden = True
Columns("CW:CY").Select
Selection.EntireColumn.Hidden = True
Columns("DB:DD").Select
Selection.EntireColumn.Hidden = True
Columns("DG:DJ").Select
Selection.EntireColumn.Hidden = True
Columns("DM:DO").Select
Selection.EntireColumn.Hidden = True
Columns("DR:DT").Select
Selection.EntireColumn.Hidden = True
Columns("DW:DY").Select
Selection.EntireColumn.Hidden = True
Columns("EB:EE").Select
Selection.EntireColumn.Hidden = True
Columns("EG").Select
Selection.EntireColumn.Hidden = True
Columns("EH:EL").Select
Selection.EntireColumn.Hidden = True
Columns("EO:FI").Select
Selection.EntireColumn.Hidden = True
' lignes masquées suite a la selection dans la liste déroulante
If Worksheets("bd_2008").Cells("I72").Value = 1 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("54:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 2 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:53").Select
Selection.EntireRow.Hidden = True
Rows("94:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 3 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:93").Select
Selection.EntireRow.Hidden = True
Rows("144:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 4 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:143").Select
Selection.EntireRow.Hidden = True
Rows("184:600").Select
Selection.EntireRow.Hidden = True
End If
End Sub
Je masque différentes colonnes d'une feuille jusque là ça va et après, c'est là où cela se gâte, j'aimerai pouvoir masquer des lignes par une macro selon la valeur d'une cellule I72, cette valeur changeant suivant une sélection faite dans un menu déroulant. valeur allant de 1 à 4 et selon cette valeur je masque différentes ligne d'une feuille du classeur. Et je ne suis pas tres doué, donc je vous envoie ma macro et si quelqu'un peut m'aider cela me retirerai une belle épinne du pied.
Un grand merci d'avance.
Sub SYNTHESE()
' Macro SYNTHESE
' Macro enregistrée le 20/12/2008 par PV
' colonnes masquées pour faciliter la lecture de la synthèse
Windows("synthese_2008.xls").Activate
Sheets("point").Select
Cells.Select
Range("B1").Activate
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False
Columns("K:M").Select
Selection.EntireColumn.Hidden = True
Columns("P:R").Select
Selection.EntireColumn.Hidden = True
Columns("U:W").Select
Selection.EntireColumn.Hidden = True
Columns("Z:AB").Select
Selection.EntireColumn.Hidden = True
Columns("AE:AG").Select
Selection.EntireColumn.Hidden = True
Columns("AJ:AL").Select
Selection.EntireColumn.Hidden = True
Columns("AO:AQ").Select
Selection.EntireColumn.Hidden = True
Columns("AT:AV").Select
Selection.EntireColumn.Hidden = True
Columns("AY:BA").Select
Selection.EntireColumn.Hidden = True
Columns("BD:BF").Select
Selection.EntireColumn.Hidden = True
Columns("BI:BK").Select
Selection.EntireColumn.Hidden = True
Columns("BN:BP").Select
Selection.EntireColumn.Hidden = True
Columns("BS:BU").Select
Selection.EntireColumn.Hidden = True
Columns("BX:BZ").Select
Selection.EntireColumn.Hidden = True
Columns("CC:CE").Select
Selection.EntireColumn.Hidden = True
Columns("CH:CJ").Select
Selection.EntireColumn.Hidden = True
Columns("CM:CO").Select
Selection.EntireColumn.Hidden = True
Columns("CR:CT").Select
Selection.EntireColumn.Hidden = True
Columns("CW:CY").Select
Selection.EntireColumn.Hidden = True
Columns("DB:DD").Select
Selection.EntireColumn.Hidden = True
Columns("DG:DJ").Select
Selection.EntireColumn.Hidden = True
Columns("DM:DO").Select
Selection.EntireColumn.Hidden = True
Columns("DR:DT").Select
Selection.EntireColumn.Hidden = True
Columns("DW:DY").Select
Selection.EntireColumn.Hidden = True
Columns("EB:EE").Select
Selection.EntireColumn.Hidden = True
Columns("EG").Select
Selection.EntireColumn.Hidden = True
Columns("EH:EL").Select
Selection.EntireColumn.Hidden = True
Columns("EO:FI").Select
Selection.EntireColumn.Hidden = True
' lignes masquées suite a la selection dans la liste déroulante
If Worksheets("bd_2008").Cells("I72").Value = 1 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("54:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 2 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:53").Select
Selection.EntireRow.Hidden = True
Rows("94:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 3 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:93").Select
Selection.EntireRow.Hidden = True
Rows("144:600").Select
Selection.EntireRow.Hidden = True
Else
If Worksheets("bd_2008").Cells("I72").Value = 4 Then
Windows("synthese_2008.xls ").Activate
Sheets("point").Select
Rows("14:143").Select
Selection.EntireRow.Hidden = True
Rows("184:600").Select
Selection.EntireRow.Hidden = True
End If
End Sub
A voir également:
- Problèmes macro sous excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Bonjour,
déjà pour la 1ère partie tu n'es pas obligé de faire un select à chaque fois, et tu peux regrouper plusieurs colonnes pour les masquer.
ex:
ou bien tu les sélectionnes toutes sur ta feuille et tu nommes la sélection ('insertion / nom / définir') colMasquées par exemple et tu fais :
Pour la 2nde partie il faut choisir entre .cells(72,9) ou .range("I72"), .cells("I72") n'existe pas.
Ensuite si tu fais 4 if, il faut 4 end if.
ou bien remplace
par
ou bien fais un select case :
eric
déjà pour la 1ère partie tu n'es pas obligé de faire un select à chaque fois, et tu peux regrouper plusieurs colonnes pour les masquer.
ex:
Range("K:M,P:R,U:W,Z:AB").EntireColumn.Hidden = True
ou bien tu les sélectionnes toutes sur ta feuille et tu nommes la sélection ('insertion / nom / définir') colMasquées par exemple et tu fais :
Range("colMasquées").EntireColumn.Hidden = True
Pour la 2nde partie il faut choisir entre .cells(72,9) ou .range("I72"), .cells("I72") n'existe pas.
Ensuite si tu fais 4 if, il faut 4 end if.
ou bien remplace
else if
par
elseif
ou bien fais un select case :
Select Case Worksheets("Feuil2").Cells(72, 9).Value Case 1 Rows("54:600").Selection.EntireRow.Hidden = True Case 2 Rows("14:53").EntireRow.Hidden = True Rows("94:600").EntireRow.Hidden = True Case 3 Rows("14:93").EntireRow.Hidden = True Rows("144:600").EntireRow.Hidden = True Case 4 Rows("14:143").EntireRow.Hidden = True Rows("184:600").EntireRow.Hidden = True End Select
eric