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   -
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 259 Date d'inscription   Statut Membre Dernière intervention   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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
Encore un grand merci à tous
0