Problèmes macro sous excel

Résolu/Fermé
Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009 - 28 déc. 2008 à 22:40
Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009 - 29 déc. 2008 à 13:33
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 samedi 27 décembre 2008 Statut Membre Dernière intervention 16 octobre 2009 25
28 déc. 2008 à 22:47
Bonsoir,

Dans quelle rubrique est enregistrée votre macro dans Vba, "Worksheets_change" ?
0
il faut dire ton probleme est difficle a resoudre.Essaye plut tard SVP...
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 257
29 déc. 2008 à 07:18
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 jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009
29 déc. 2008 à 13:33
Encore un grand merci à tous
0