Procédure trop Grande

Bonjour,

Je viens de terminer d'écrire une procédure pour mon premier onglet Excel. Il s'agit d'une répétition de condition du type :

Si la case AB4 contient la référence "XXXX" alors j'affiche les lignes (X:X) et je masque les lignes (X:X) sinon ........

J'ai 546 références différentes.

Celle ci marchait très bien pour 100 références mais après avoir écrit ma procédure pour les 546 références, Excel me met le message d'erreur suivant : "Procédure trop grande"

Quel est la solution ? Peut on diviser la procédure en plusieurs procédures ? Peut on optimiser le code et comment ?

Voici un bout de mon code :

Sub Worksheet_Change(ByVal Target As Range)

'As As (S) - DEALER - 1

If Range("AB4").Value = "R1R1D" Or Range("AB4").Value = "N1N1D" Then
Dim FR1$, FR2$, FR3$
FR1 = "19:18": FR2 = "19:26": FR3 = "27:4586"
Rows(FR1).Hidden = True
Rows(FR2).Hidden = False
Rows(FR3).Hidden = True

Else

'AS As (D) - DEALER - 2

If Range("AB4").Value = "R1N1D" Or Range("AB4").Value = "N1R1D" Then
Dim FR4$, FR5$, FR6$
FR4 = "19:18": FR5 = "19:26": FR6 = "27:4586"
Rows(FR4).Hidden = True
Rows(FR5).Hidden = False
Rows(FR6).Hidden = True

Else

'AS As (S) - SMALL BLIND - 3

If Range("AB4").Value = "R1R1SB" Or Range("AB4").Value = "N1N1SB" Then
Dim FR7$, FR8$, FR9$
FR7 = "19:27": FR8 = "28:35": FR9 = "36:4586"
Rows(FR7).Hidden = True
Rows(FR8).Hidden = False
Rows(FR9).Hidden = True

Else

'AS As (D) - SMALL BLIND - 4

If Range("AB4").Value = "R1N1SB" Or Range("AB4").Value = "N1R1SB" Then
Dim FR10$, FR11$, FR12$
FR10 = "19:27": FR11 = "28:35": FR12 = "36:4586"
Rows(FR10).Hidden = True
Rows(FR11).Hidden = False
Rows(FR12).Hidden = True

Else

'AS As (S) - BIG BLIND - 5

If Range("AB4").Value = "R1R1BB" Or Range("AB4").Value = "N1N1BB" Then
Dim FR13$, FR14$, FR15$
FR13 = "19:36": FR14 = "37:44": FR15 = "45:4586"
Rows(FR13).Hidden = True
Rows(FR14).Hidden = False
Rows(FR15).Hidden = True

Else

'AS As (D) - BIG BLIND - 6
If Range("AB4").Value = "R1N1BB" Or Range("AB4").Value = "N1R1BB" Then
Dim FR16$, FR17$, FR18$
FR16 = "19:36": FR17 = "37:44": FR18 = "45:4586"
Rows(FR16).Hidden = True
Rows(FR17).Hidden = False
Rows(FR18).Hidden = True

Else

'AS Roi (S) - DEALER - 7

If Range("AB4").Value = "R1RRD" Or Range("AB4").Value = "N1NRD" Then
Dim FR19$, FR20$, FR21$
FR19 = "19:45": FR20 = "46:53": FR21 = "54:4586"
Rows(FR19).Hidden = True
Rows(FR20).Hidden = False
Rows(FR21).Hidden = True

Else

'AS Roi (S) - SMALL BLIND - 8

If Range("AB4").Value = "R1RRSB" Or Range("AB4").Value = "N1NRSB" Then
Dim FR22$, FR23$, FR24$
FR22 = "19:54": FR23 = "55:62": FR24 = "63:4586"
Rows(FR22).Hidden = True
Rows(FR23).Hidden = False
Rows(FR24).Hidden = True

Else

'AS Roi (S) - BIG BLIND - 9

If Range("AB4").Value = "R1RRBB" Or Range("AB4").Value = "N1NRBB" Then
Dim FR25$, FR26$, FR27$
FR25 = "19:63": FR26 = "64:71": FR27 = "72:4586"
Rows(FR25).Hidden = True
Rows(FR26).Hidden = False
Rows(FR27).Hidden = True

Else

'AS Dame (S) - DEALER - 10

If Range("AB4").Value = "R1RDD" Or Range("AB4").Value = "N1NDD" Then
Dim FR28$, FR29$, FR30$
FR28 = "19:72": FR29 = "73:80": FR30 = "81:4586"
Rows(FR28).Hidden = True
Rows(FR29).Hidden = False
Rows(FR30).Hidden = True

Else

'AS Dame (S) - SMALL BLIND - 11

If Range("AB4").Value = "R1RDSB" Or Range("AB4").Value = "N1NDSB" Then
Dim FR31$, FR32$, FR33$
FR31 = "19:81": FR32 = "82:89": FR33 = "90:4586"
Rows(FR31).Hidden = True
Rows(FR32).Hidden = False
Rows(FR33).Hidden = True

Else

'AS Dame (S) - BIG BLIND - 12

If Range("AB4").Value = "R1RDBB" Or Range("AB4").Value = "N1NDBB" Then
Dim FR34$, FR35$, FR36$
FR34 = "19:90": FR35 = "91:98": FR36 = "99:4586"
Rows(FR34).Hidden = True
Rows(FR35).Hidden = False
Rows(FR36).Hidden = True

Else

'AS Valet (S) - DEALER - 13

If Range("AB4").Value = "R1RJD" Or Range("AB4").Value = "N1NJD" Then
Dim FR37$, FR38$, FR39$
FR37 = "19:99": FR38 = "100:107": FR39 = "108:4586"
Rows(FR37).Hidden = True
Rows(FR38).Hidden = False
Rows(FR39).Hidden = True

Else

'AS Valet (S) - SMALL BLIND - 14

If Range("AB4").Value = "R1RJSB" Or Range("AB4").Value = "N1NJSB" Then
Dim FR40$, FR41$, FR42$
FR40 = "19:108": FR41 = "109:116": FR42 = "117:4586"
Rows(FR40).Hidden = True
Rows(FR41).Hidden = False
Rows(FR42).Hidden = True

Else

'AS Valet (S) - BIG BLIND - 15

If Range("AB4").Value = "R1RJBB" Or Range("AB4").Value = "N1NJBB" Then
Dim FR43$, FR44$, FR45$
FR43 = "19:117": FR44 = "118:125": FR45 = "126:4586"
Rows(FR43).Hidden = True
Rows(FR44).Hidden = False
Rows(FR45).Hidden = True

Else

'AS 10 (S) - DEALER - 16

If Range("AB4").Value = "R1R10D" Or Range("AB4").Value = "N1N10D" Then
Dim FR46$, FR47$, FR48$
FR46 = "19:126": FR47 = "127:134": FR48 = "135:4586"
Rows(FR46).Hidden = True
Rows(FR47).Hidden = False
Rows(FR48).Hidden = True

Else

'AS 10 (S) - SMALL BLIND - 17

If Range("AB4").Value = "R1R10SB" Or Range("AB4").Value = "N1N10SB" Then
Dim FR49$, FR50$, FR51$
FR49 = "19:135": FR50 = "136:143": FR51 = "144:4586"
Rows(FR49).Hidden = True
Rows(FR50).Hidden = False
Rows(FR51).Hidden = True

Else

'AS 10 (S) - BIG BLIND - 18

If Range("AB4").Value = "R1R10BB" Or Range("AB4").Value = "N1N10BB" Then
Dim FR52$, FR53$, FR54$
FR52 = "19:144": FR53 = "145:152": FR54 = "153:4586"
Rows(FR52).Hidden = True
Rows(FR53).Hidden = False
Rows(FR54).Hidden = True

Else
'AS 9 (S) - DEALER - 19

If Range("AB4").Value = "R1R9D" Or Range("AB4").Value = "N1N9D" Then
Dim FR55$, FR56$, FR57$
FR55 = "19:153": FR56 = "154:161": FR57 = "162:4586"
Rows(FR55).Hidden = True
Rows(FR56).Hidden = False
Rows(FR57).Hidden = True

Else

'AS 9 (S) - SMALL BLIND - 20

If Range("AB4").Value = "R1R9SB" Or Range("AB4").Value = "N1N9SB" Then
Dim FR58$, FR59$, FR60$
FR58 = "19:162": FR59 = "163:170": FR60 = "171:4586"
Rows(FR58).Hidden = True
Rows(FR59).Hidden = False
Rows(FR60).Hidden = True

Else

'AS 9 (S) - BIG BLIND - 21

If Range("AB4").Value = "R1R9BB" Or Range("AB4").Value = "N1N9BB" Then
Dim FR61$, FR62$, FR63$
FR61 = "19:171": FR62 = "172:179": FR63 = "180:4586"
Rows(FR61).Hidden = True
Rows(FR62).Hidden = False
Rows(FR63).Hidden = True

Else

'AS 8 (S) - DEALER - 22

If Range("AB4").Value = "R1R8D" Or Range("AB4").Value = "N1N8D" Then
Dim FR64$, FR65$, FR66$
FR64 = "19:180": FR65 = "181:188": FR66 = "189:4586"
Rows(FR64).Hidden = True
Rows(FR65).Hidden = False
Rows(FR66).Hidden = True

Else

'AS 8 (S) - SMALL BLIND - 23

If Range("AB4").Value = "R1R8SB" Or Range("AB4").Value = "N1N8SB" Then
Dim FR67$, FR68$, FR69$
FR67 = "19:189": FR68 = "190:197": FR69 = "198:4586"
Rows(FR67).Hidden = True
Rows(FR68).Hidden = False
Rows(FR69).Hidden = True

Else

'AS 8 (S) - BIG BLIND - 24

If Range("AB4").Value = "R1R8BB" Or Range("AB4").Value = "N1N8BB" Then
Dim FR70$, FR71$, FR72$
FR70 = "19:198": FR71 = "199:206": FR72 = "207:4586"
Rows(FR70).Hidden = True
Rows(FR71).Hidden = False
Rows(FR72).Hidden = True

Else
'AS 7 (S) - DEALER - 25

If Range("AB4").Value = "R1R7D" Or Range("AB4").Value = "N1N7D" Then
Dim FR73$, FR74$, FR75$
FR73 = "19:207": FR74 = "208:215": FR75 = "216:4586"
Rows(FR73).Hidden = True
Rows(FR74).Hidden = False
Rows(FR75).Hidden = True

Else

'AS 7 (S) - SMALL BLIND - 26

If Range("AB4").Value = "R1R7SB" Or Range("AB4").Value = "N1N7SB" Then
Dim FR76$, FR77$, FR78$
FR76 = "19:216": FR77 = "217:224": FR78 = "225:4586"
Rows(FR76).Hidden = True
Rows(FR77).Hidden = False
Rows(FR78).Hidden = True

Else

'AS 7 (S) - BIG BLIND - 27

If Range("AB4").Value = "R1R7BB" Or Range("AB4").Value = "N1N7BB" Then
Dim FR79$, FR80$, FR81$
FR79 = "19:225": FR80 = "226:233": FR81 = "234:4586"
Rows(FR79).Hidden = True
Rows(FR80).Hidden = False
Rows(FR81).Hidden = True

Else

'AS 6 (S) - DEALER - 28

If Range("AB4").Value = "R1R6D" Or Range("AB4").Value = "N1N6D" Then
Dim FR82$, FR83$, FR84$
FR82 = "19:234": FR83 = "235:242": FR84 = "243:4586"
Rows(FR82).Hidden = True
Rows(FR83).Hidden = False
Rows(FR84).Hidden = True

Else

'AS 6 (S) - SMALL BLIND - 29

If Range("AB4").Value = "R1R6SB" Or Range("AB4").Value = "N1N6SB" Then
Dim FR85$, FR86$, FR87$
FR85 = "19:243": FR86 = "244:251": FR87 = "252:4586"
Rows(FR85).Hidden = True
Rows(FR86).Hidden = False
Rows(FR87).Hidden = True

Else

'AS 6 (S) - BIG BLIND - 30

If Range("AB4").Value = "R1R6BB" Or Range("AB4").Value = "N1N6BB" Then
Dim FR88$, FR89$, FR90$
FR88 = "19:252": FR89 = "253:260": FR90 = "261:4586"
Rows(FR88).Hidden = True
Rows(FR89).Hidden = False
Rows(FR90).Hidden = True

Else

'AS 5 (S) - DEALER - 31

If Range("AB4").Value = "R1R5D" Or Range("AB4").Value = "N1N5D" Then
Dim FR91$, FR92$, FR93$
FR91 = "19:261": FR92 = "262:269": FR93 = "270:4586"
Rows(FR91).Hidden = True
Rows(FR92).Hidden = False
Rows(FR93).Hidden = True

Else

'AS 5 (S) - SMALL BLIND - 32

If Range("AB4").Value = "R1R5SB" Or Range("AB4").Value = "N1N5SB" Then
Dim FR94$, FR95$, FR96$
FR94 = "19:270": FR95 = "271:278": FR96 = "279:4586"
Rows(FR94).Hidden = True
Rows(FR95).Hidden = False
Rows(FR96).Hidden = True

Else
'AS 5 (S) - BIG BLIND - 33

If Range("AB4").Value = "R1R5BB" Or Range("AB4").Value = "N1N5BB" Then
Dim FR97$, FR98$, FR99$
FR97 = "19:279": FR98 = "280:287": FR99 = "288:4586"
Rows(FR97).Hidden = True
Rows(FR98).Hidden = False
Rows(FR99).Hidden = True

Else

'AS 4 (S) - DEALER - 34

If Range("AB4").Value = "R1R4D" Or Range("AB4").Value = "N1N4D" Then
Dim FR100$, FR101$, FR102$
FR100 = "19:288": FR101 = "289:296": FR102 = "297:4586"
Rows(FR100).Hidden = True
Rows(FR101).Hidden = False
Rows(FR102).Hidden = True

Else

'AS 4 (S) - SMALL BLIND - 35

If Range("AB4").Value = "R1R4SB" Or Range("AB4").Value = "N1N4SB" Then
Dim FR103$, FR104$, FR105$
FR103 = "19:297": FR104 = "298:305": FR105 = "306:4586"
Rows(FR103).Hidden = True
Rows(FR104).Hidden = False
Rows(FR105).Hidden = True

Else

'AS 4 (S) - BIG BLIND - 36

If Range("AB4").Value = "R1R4BB" Or Range("AB4").Value = "N1N4BB" Then
Dim FR106$, FR107$, FR108$
FR106 = "19:306": FR107 = "307:314": FR108 = "315:4586"
Rows(FR106).Hidden = True
Rows(FR107).Hidden = False
Rows(FR108).Hidden = True

Else

'AS 3 (S) - DEALER - 37

If Range("AB4").Value = "R1R3D" Or Range("AB4").Value = "N1N3D" Then
Dim FR109$, FR110$, FR111$
FR109 = "19:315": FR110 = "316:323": FR111 = "324:4586"
Rows(FR109).Hidden = True
Rows(FR110).Hidden = False
Rows(FR111).Hidden = True

Else

'AS 3 (S) - SMALL BLIND - 38

If Range("AB4").Value = "R1R3SB" Or Range("AB4").Value = "N1N3SB" Then
Dim FR112$, FR113$, FR114$
FR112 = "19:324": FR113 = "325:332": FR114 = "333:4586"
Rows(FR112).Hidden = True
Rows(FR113).Hidden = False
Rows(FR114).Hidden = True

Else

'AS 3 (S) - BIG BLIND - 39

If Range("AB4").Value = "R1R3BB" Or Range("AB4").Value = "N1N3BB" Then
Dim FR115$, FR116$, FR117$
FR115 = "19:333": FR116 = "334:341": FR117 = "342:4586"
Rows(FR115).Hidden = True
Rows(FR116).Hidden = False
Rows(FR117).Hidden = True

Else

'AS 2 (S) - DEALER - 40

If Range("AB4").Value = "R1R2D" Or Range("AB4").Value = "N1N2D" Then
Dim FR118$, FR119$, FR120$
FR118 = "19:342": FR119 = "343:350": FR120 = "351:4586"
Rows(FR118).Hidden = True
Rows(FR119).Hidden = False
Rows(FR120).Hidden = True

Else

'AS 2 (S) - SMALL BLIND - 41

If Range("AB4").Value = "R1R2SB" Or Range("AB4").Value = "N1N2SB" Then
Dim FR121$, FR122$, FR123$
FR121 = "19:351": FR122 = "352:359": FR123 = "360:4586"
Rows(FR121).Hidden = True
Rows(FR122).Hidden = False
Rows(FR123).Hidden = True

Else

'AS 2 (S) - BIG BLIND - 42

If Range("AB4").Value = "R1R2BB" Or Range("AB4").Value = "N1N2BB" Then
Dim FR124$, FR125$, FR126$
FR124 = "19:360": FR125 = "361:368": FR126 = "369:4586"
Rows(FR124).Hidden = True
Rows(FR125).Hidden = False
Rows(FR126).Hidden = True

]

Bonjour,

Ta demande aurait dû être dans la section Excel - VBA.

Dim FR1$, FR2$, FR3$ auraient pu être placés au haut et être utilisés dans tous les cas.

Nul besoin de les incrémenter.

Un essai ...

Sub Worksheet_Change(ByVal Target As Range)

    Select Case Range("AB4").Value

    Case "R1R1D", "N1N1D"
        Dim FR1$, FR2$, FR3$
        FR1 = "19:18": FR2 = "19:26": FR3 = "27:4586"
        Rows(FR1).Hidden = True
        Rows(FR2).Hidden = False
        Rows(FR3).Hidden = True
    Case "R1N1D", "N1R1D"
        Dim FR4$, FR5$, FR6$
        FR4 = "19:18": FR5 = "19:26": FR6 = "27:4586"
        Rows(FR4).Hidden = True
        Rows(FR5).Hidden = False
        Rows(FR6).Hidden = True
    Case "R1R1SB", "N1N1SB"
        Dim FR7$, FR8$, FR9$
        FR7 = "19:27": FR8 = "28:35": FR9 = "36:4586"
        Rows(FR7).Hidden = True
        Rows(FR8).Hidden = False
        Rows(FR9).Hidden = True
    Case "R1N1SB", "N1R1SB"
        Dim FR10$, FR11$, FR12$
        FR10 = "19:27": FR11 = "28:35": FR12 = "36:4586"
        Rows(FR10).Hidden = True
        Rows(FR11).Hidden = False
        Rows(FR12).Hidden = True
    Case "R1R1BB", "N1N1BB"
        Dim FR13$, FR14$, FR15$
        FR13 = "19:36": FR14 = "37:44": FR15 = "45:4586"
        Rows(FR13).Hidden = True
        Rows(FR14).Hidden = False
        Rows(FR15).Hidden = True
    Case "R1N1BB", "N1R1BB"
        Dim FR16$, FR17$, FR18$
        FR16 = "19:36": FR17 = "37:44": FR18 = "45:4586"
        Rows(FR16).Hidden = True
        Rows(FR17).Hidden = False
        Rows(FR18).Hidden = True
    Case "R1RRD", "N1NRD"
        Dim FR19$, FR20$, FR21$
        FR19 = "19:45": FR20 = "46:53": FR21 = "54:4586"
        Rows(FR19).Hidden = True
        Rows(FR20).Hidden = False
        Rows(FR21).Hidden = True
    Case "R1RRSB", "N1NRSB"
        Dim FR22$, FR23$, FR24$
        FR22 = "19:54": FR23 = "55:62": FR24 = "63:4586"
        Rows(FR22).Hidden = True
        Rows(FR23).Hidden = False
        Rows(FR24).Hidden = True
    Case "R1RRBB", "N1NRBB"
        Dim FR25$, FR26$, FR27$
        FR25 = "19:63": FR26 = "64:71": FR27 = "72:4586"
        Rows(FR25).Hidden = True
        Rows(FR26).Hidden = False
        Rows(FR27).Hidden = True
    Case "R1RDD", "N1NDD"
        Dim FR28$, FR29$, FR30$
        FR28 = "19:72": FR29 = "73:80": FR30 = "81:4586"
        Rows(FR28).Hidden = True
        Rows(FR29).Hidden = False
        Rows(FR30).Hidden = True
    Case "R1RDSB", "N1NDSB"
        Dim FR31$, FR32$, FR33$
        FR31 = "19:81": FR32 = "82:89": FR33 = "90:4586"
        Rows(FR31).Hidden = True
        Rows(FR32).Hidden = False
        Rows(FR33).Hidden = True
    Case "R1RDBB", "N1NDBB"
        Dim FR34$, FR35$, FR36$
        FR34 = "19:90": FR35 = "91:98": FR36 = "99:4586"
        Rows(FR34).Hidden = True
        Rows(FR35).Hidden = False
        Rows(FR36).Hidden = True
    Case "R1RJD", "N1NJD"
        Dim FR37$, FR38$, FR39$
        FR37 = "19:99": FR38 = "100:107": FR39 = "108:4586"
        Rows(FR37).Hidden = True
        Rows(FR38).Hidden = False
        Rows(FR39).Hidden = True
    Case "R1RJSB", "N1NJSB"
        Dim FR40$, FR41$, FR42$
        FR40 = "19:108": FR41 = "109:116": FR42 = "117:4586"
        Rows(FR40).Hidden = True
        Rows(FR41).Hidden = False
        Rows(FR42).Hidden = True
    Case "R1RJBB", "N1NJBB"
        Dim FR43$, FR44$, FR45$
        FR43 = "19:117": FR44 = "118:125": FR45 = "126:4586"
        Rows(FR43).Hidden = True
        Rows(FR44).Hidden = False
        Rows(FR45).Hidden = True
    Case "R1R10D", "N1N10D"
        Dim FR46$, FR47$, FR48$
        FR46 = "19:126": FR47 = "127:134": FR48 = "135:4586"
        Rows(FR46).Hidden = True
        Rows(FR47).Hidden = False
        Rows(FR48).Hidden = True
    Case "R1R10SB", "N1N10SB"
        Dim FR49$, FR50$, FR51$
        FR49 = "19:135": FR50 = "136:143": FR51 = "144:4586"
        Rows(FR49).Hidden = True
        Rows(FR50).Hidden = False
        Rows(FR51).Hidden = True
    Case "R1R10BB", "N1N10BB"
        Dim FR52$, FR53$, FR54$
        FR52 = "19:144": FR53 = "145:152": FR54 = "153:4586"
        Rows(FR52).Hidden = True
        Rows(FR53).Hidden = False
        Rows(FR54).Hidden = True

    Case "R1R9D", "N1N9D"
        Dim FR55$, FR56$, FR57$
        FR55 = "19:153": FR56 = "154:161": FR57 = "162:4586"
        Rows(FR55).Hidden = True
        Rows(FR56).Hidden = False
        Rows(FR57).Hidden = True
    Case "R1R9SB", "N1N9SB"
        Dim FR58$, FR59$, FR60$
        FR58 = "19:162": FR59 = "163:170": FR60 = "171:4586"
        Rows(FR58).Hidden = True
        Rows(FR59).Hidden = False
        Rows(FR60).Hidden = True
    Case "R1R9BB", "N1N9BB"
        Dim FR61$, FR62$, FR63$
        FR61 = "19:171": FR62 = "172:179": FR63 = "180:4586"
        Rows(FR61).Hidden = True
        Rows(FR62).Hidden = False
        Rows(FR63).Hidden = True
    Case "R1R8D", "N1N8D"
        Dim FR64$, FR65$, FR66$
        FR64 = "19:180": FR65 = "181:188": FR66 = "189:4586"
        Rows(FR64).Hidden = True
        Rows(FR65).Hidden = False
        Rows(FR66).Hidden = True
    Case "R1R8SB", "N1N8SB"
        Dim FR67$, FR68$, FR69$
        FR67 = "19:189": FR68 = "190:197": FR69 = "198:4586"
        Rows(FR67).Hidden = True
        Rows(FR68).Hidden = False
        Rows(FR69).Hidden = True
    Case "R1R8BB", "N1N8BB"
        Dim FR70$, FR71$, FR72$
        FR70 = "19:198": FR71 = "199:206": FR72 = "207:4586"
        Rows(FR70).Hidden = True
        Rows(FR71).Hidden = False
        Rows(FR72).Hidden = True
    Case "R1R7D", "N1N7D"
        Dim FR73$, FR74$, FR75$
        FR73 = "19:207": FR74 = "208:215": FR75 = "216:4586"
        Rows(FR73).Hidden = True
        Rows(FR74).Hidden = False
        Rows(FR75).Hidden = True
    Case "R1R7SB", "N1N7SB"
        Dim FR76$, FR77$, FR78$
        FR76 = "19:216": FR77 = "217:224": FR78 = "225:4586"
        Rows(FR76).Hidden = True
        Rows(FR77).Hidden = False
        Rows(FR78).Hidden = True
    Case "R1R7BB", "N1N7BB"
        Dim FR79$, FR80$, FR81$
        FR79 = "19:225": FR80 = "226:233": FR81 = "234:4586"
        Rows(FR79).Hidden = True
        Rows(FR80).Hidden = False
        Rows(FR81).Hidden = True
    Case "R1R6D", "N1N6D"
        Dim FR82$, FR83$, FR84$
        FR82 = "19:234": FR83 = "235:242": FR84 = "243:4586"
        Rows(FR82).Hidden = True
        Rows(FR83).Hidden = False
        Rows(FR84).Hidden = True
    Case "R1R6SB", "N1N6SB"
        Dim FR85$, FR86$, FR87$
        FR85 = "19:243": FR86 = "244:251": FR87 = "252:4586"
        Rows(FR85).Hidden = True
        Rows(FR86).Hidden = False
        Rows(FR87).Hidden = True
    Case "R1R6BB", "N1N6BB"
        Dim FR88$, FR89$, FR90$
        FR88 = "19:252": FR89 = "253:260": FR90 = "261:4586"
        Rows(FR88).Hidden = True
        Rows(FR89).Hidden = False
        Rows(FR90).Hidden = True
    Case "R1R5D", "N1N5D"
        Dim FR91$, FR92$, FR93$
        FR91 = "19:261": FR92 = "262:269": FR93 = "270:4586"
        Rows(FR91).Hidden = True
        Rows(FR92).Hidden = False
        Rows(FR93).Hidden = True
    Case "R1R5SB", "N1N5SB"
        Dim FR94$, FR95$, FR96$
        FR94 = "19:270": FR95 = "271:278": FR96 = "279:4586"
        Rows(FR94).Hidden = True
        Rows(FR95).Hidden = False
        Rows(FR96).Hidden = True
    Case "R1R5BB", "N1N5BB"
        Dim FR97$, FR98$, FR99$
        FR97 = "19:279": FR98 = "280:287": FR99 = "288:4586"
        Rows(FR97).Hidden = True
        Rows(FR98).Hidden = False
        Rows(FR99).Hidden = True
    Case "R1R4D", "N1N4D"
        Dim FR100$, FR101$, FR102$
        FR100 = "19:288": FR101 = "289:296": FR102 = "297:4586"
        Rows(FR100).Hidden = True
        Rows(FR101).Hidden = False
        Rows(FR102).Hidden = True
    Case "R1R4SB", "N1N4SB"
        Dim FR103$, FR104$, FR105$
        FR103 = "19:297": FR104 = "298:305": FR105 = "306:4586"
        Rows(FR103).Hidden = True
        Rows(FR104).Hidden = False
        Rows(FR105).Hidden = True
    Case "R1R4BB", "N1N4BB"
        Dim FR106$, FR107$, FR108$
        FR106 = "19:306": FR107 = "307:314": FR108 = "315:4586"
        Rows(FR106).Hidden = True
        Rows(FR107).Hidden = False
        Rows(FR108).Hidden = True
    Case "R1R3D", "N1N3D"
        Dim FR109$, FR110$, FR111$
        FR109 = "19:315": FR110 = "316:323": FR111 = "324:4586"
        Rows(FR109).Hidden = True
        Rows(FR110).Hidden = False
        Rows(FR111).Hidden = True
    Case "R1R3SB", "N1N3SB"
        Dim FR112$, FR113$, FR114$
        FR112 = "19:324": FR113 = "325:332": FR114 = "333:4586"
        Rows(FR112).Hidden = True
        Rows(FR113).Hidden = False
        Rows(FR114).Hidden = True
    Case "R1R3BB", "N1N3BB"
        Dim FR115$, FR116$, FR117$
        FR115 = "19:333": FR116 = "334:341": FR117 = "342:4586"
        Rows(FR115).Hidden = True
        Rows(FR116).Hidden = False
        Rows(FR117).Hidden = True
    Case "R1R2D", "N1N2D"
        Dim FR118$, FR119$, FR120$
        FR118 = "19:342": FR119 = "343:350": FR120 = "351:4586"
        Rows(FR118).Hidden = True
        Rows(FR119).Hidden = False
        Rows(FR120).Hidden = True
    Case "R1R2SB", "N1N2SB"
        Dim FR121$, FR122$, FR123$
        FR121 = "19:351": FR122 = "352:359": FR123 = "360:4586"
        Rows(FR121).Hidden = True
        Rows(FR122).Hidden = False
        Rows(FR123).Hidden = True
    Case "R1R2BB", "N1N2BB"
        Dim FR124$, FR125$, FR126$
        FR124 = "19:360": FR125 = "361:368": FR126 = "369:4586"
        Rows(FR124).Hidden = True
        Rows(FR125).Hidden = False
        Rows(FR126).Hidden = True
    End Select

End Sub

ric

Hello Ric

Desole pour l'erreur de topic, je suis nouveau sur le site

Super ca fonctionne.

Pour utiliser partout Dim FR1$, FR2$, FR3$, que dois je modifier ?

Merci pour tout

Bonjour,

Une suggestion ...

Dim FR1$, FR2$, FR3$

   Select Case Range("AB4").Value

    Case "R1R1D", "N1N1D"
        FR1 = "19:18": FR2 = "19:26": FR3 = "27:4586"
        Rows(FR1).Hidden = True
        Rows(FR2).Hidden = False
        Rows(FR3).Hidden = True
    Case "R1N1D", "N1R1D"
        FR1 = "19:18": FR2 = "19:26": FR3 = "27:4586"
        Rows(FR1).Hidden = True
        Rows(FR2).Hidden = False
        Rows(FR3).Hidden = True
    Case "R1R1SB", "N1N1SB"
        FR1 = "19:27": FR2 = "28:35": FR3 = "36:4586"
        Rows(FR1).Hidden = True
        Rows(FR2).Hidden = False
        Rows(FR3).Hidden = True

Faire la même chose pour le reste.

ric

Bonjour à tous,

je te propose de mettre tes paramètres sur une feuille.

Beaucoup plus simple à maintenir en cas d'évolution, et la macro devient simplement :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    If Target.Address = "$AB$4" Then
        With Sheets("Params")
            Set c = .[A:D].Find(Target.Value, , xlValues, xlWhole)
            [19:4586].EntireRow.Hidden = True
            If Not c Is Nothing Then Range(.Cells(c.Row, "E").Value).EntireRow.Hidden = False
        End With
    End If
End Sub

eric

9classeur6.xlsm (30.87 Ko)

Hello,

Ou dois je mettre cette procedure et je fais quoi du reste de mon code ?

Merci

Bonjour à tous,

Tu remplaces tout ton code de la macro par celui d'eriiic.

Tu ajoutes la feuille "Params" et son petit tableau.

Tu testes.

Pour les tests, il est préférable de travailler sur une copie.

ric

Hello

J'ai fait un copier coller de l'onglet params dans mon fichier et j'ai copier coller la procedure d'Erric dans la feuille contenant ma reference dans ma cellule AB4 mais rien ne se passe.

Puis je vous envoyer mon fichier ?

Bonjour à tousse,

Bien sûr, tu peux envoyer ton fichier.

ric

Bonjour à tousse,

Si ton fichier est trop lourd, tu peux utiliser https://mon-partage.fr/ et donner le lien qui sera créé.

ric

Hello

Mon fichier est trop lourd et je ne peux pas partager le lien car nouveau sur le site (je dois échanger au moins 10 message

Puis je te l'envoyer par mail?

Bonjour,

Si tu m'envoies un message privé, ne peux-tu coller le lien ?

https://mon-partage.fr/

ric

C'est bon avec une petite astuce

C'est bon pour toi?

Bonjour,

Dans la feuille "Table 3 joueurs", tu modifies les cellules V, X et Z et non AB4.

Modifie la macro ainsi; chacun des 4 choix où modifier déclencheront la macro.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    If Target.Address = "$AB$4" Or Target.Address = "$V$4" Or Target.Address = "$X$4" Or Target.Address = "$Z$4" Then
        With Sheets("Params")
            Set c = .[A:D].Find(Target.Value, , xlValues, xlWhole)
            [19:4586].EntireRow.Hidden = True
            If Not c Is Nothing Then Range(.Cells(c.Row, "E").Value).EntireRow.Hidden = False
        End With
    End If
End Sub

ric

Hello,

Merci pour ton retour.

La macro fonctionne.

Par contre, toutes mes lignes se masquent et les lignes qui doivent s'afficher n'apparaissent pas

Bonjour,

C'est la macro d'eriiic. Je n'ai pas testé si elle correspondait en tout point à ton besoin.

Si eriiic ne repasse pas par ici, je peux regarder cela demain.

ric

Bonjour,

FR1 = "19:18": FR2 = "19:26": FR3 = "27:4586"

Rows(FR1).Hidden = True

Rows(FR2).Hidden = False

Rows(FR3).Hidden = True

Dans la macro fourni dans ta demande, les 2 premiers items, FR1 affiche de 19 à 18, ce n'est pas logique.

Ensuite, FR2 masque 19 à 26, ce qui contredit FR1.

Est-ce correcte ou est-ce une erreur de frappe ????

ric

Il s'agit d'une erreur de frappe

Voila le bon code :

FR1 = "18:18": FR2 = "19:26": FR3 = "27:4586"

Rows(FR1).Hidden = True

Rows(FR2).Hidden = False

Rows(FR3).Hidden = True

Bonjour,

Tous les autres commencent-il par 18 aussi ??

Si le code d'eriiic ne fonctionne pas correctement, c'est simplement qu'il a saisi quelques références et te laissait l'opportunité de compléter le tableau.

ric

Ah ben oui, il faut compléter la feuille Params

Rechercher des sujets similaires à "procedure trop grande"