Problèmes macro sous excel

Résolu
Barbebulle Messages postés 7 Statut Membre -  
Barbebulle Messages postés 7 Statut Membre -
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
A voir également:

4 réponses

al1_delon Messages postés 263 Statut Membre 25
 
Bonsoir,

Dans quelle rubrique est enregistrée votre macro dans Vba, "Worksheets_change" ?
0
lablabi 7ar
 
il faut dire ton probleme est difficle a resoudre.Essaye plut tard SVP...
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
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:
 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
0
Barbebulle Messages postés 7 Statut Membre
 
Encore un grand merci à tous
0