A voir également:
- EXCEL - mon code VB est pourri, aidez moi !
- Liste déroulante excel - Guide
- Code asci - Guide
- Si et excel - Guide
- Code puk bloqué - Guide
- Aller à la ligne excel - Guide
4 réponses
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
5 janv. 2010 à 20:05
5 janv. 2010 à 20:05
Salut,
je ne suis pas un pro en VBA mais je m'essaie ;)
Voilà :)
je ne suis pas un pro en VBA mais je m'essaie ;)
Public Sub tab1() Application.ScreenUpdating = False If Range("j36") = 3 Then Range("44:55").EntireRow.Hidden = True End If If Range("j36") = 4 Then Range("44:44").EntireRow.Hidden = False Range("45:55").EntireRow.Hidden = True End If If Range("j36") = 5 Then Range("44:45").EntireRow.Hidden = False Range("46:55").EntireRow.Hidden = True End If If Range("j36") = 6 Then Range("44:46").EntireRow.Hidden = False Range("47:55").EntireRow.Hidden = True End If If Range("j36") = 7 Then Range("44:47").EntireRow.Hidden = False Range("48:55").EntireRow.Hidden = True End If If Range("j36") = 8 Then Range("44:48").EntireRow.Hidden = False Range("49:55").EntireRow.Hidden = True End If If Range("j36") = 9 Then Range("44:49").EntireRow.Hidden = False Range("50:55").EntireRow.Hidden = True End If If Range("j36") = 10 Then Range("44:50").EntireRow.Hidden = False Range("51:55").EntireRow.Hidden = True End If If Range("j36") = 11 Then Range("44:51").EntireRow.Hidden = False Range("52:52").EntireRow.Hidden = True End If If Range("j36") = 12 Then Range("44:52").EntireRow.Hidden = False Range("53:55").EntireRow.Hidden = True End If If Range("j36") = 13 Then Range("44:53").EntireRow.Hidden = False Range("54:55").EntireRow.Hidden = True End If If Range("j36") = 14 Then Range("44:54").EntireRow.Hidden = False Range("55:55").EntireRow.Hidden = True End If If Range("j36") = 15 Then Range("44:55").EntireRow.Hidden = False End If Application.ScreenUpdating = True End Sub
Voilà :)
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
5 janv. 2010 à 22:38
5 janv. 2010 à 22:38
Bonsoir,
Un peu plus court :
mais pas dit que tes lenteurs se situaient sur cette partie vue que tu faisais bien le .ScreenUpdating...
eric
Un peu plus court :
Public Sub tab1() Application.ScreenUpdating = False Select Case [J36] Case 3 Range("44:55").EntireRow.Hidden = True Case Is > 3, Is <= 15 Range("44:55").EntireRow.Hidden = True Range("44:44").Resize([J36] - 3).EntireRow.Hidden = False End Select Application.ScreenUpdating = True End Sub
mais pas dit que tes lenteurs se situaient sur cette partie vue que tu faisais bien le .ScreenUpdating...
eric
Pour être plus claire je remets tout mon code. Le problème est qu'avec le code d'eriiiiic, un clic sur mon bouton équivaut à +2 et 2 lignes sont en conséquence masquées ou affichées.
je ne vois pas ou est le souci dans le code...
Public Sub tab1()
Application.ScreenUpdating = False
Select Case [J36]
Case 3
Range("44:55").EntireRow.Hidden = True
Case Is > 3, Is <= 15
Range("44:55").EntireRow.Hidden = True
Range("44:44").Resize([J36] - 2).EntireRow.Hidden = False
End Select
Application.ScreenUpdating = True
End Sub
-------------------------------------------------------------------------------
Private Sub SpinButton1_SpinDown()
If Range("j36") > 3 Then
Range("j36").Value = Range("j36").Value - 1
tab1
Else
Exit Sub
End If
End Sub
-------------------------------------------------------------------------------
Private Sub SpinButton1_SpinUp()
If Range("j36") < 15 Then
Range("j36").Value = Range("j36").Value + 1
tab1
Else
Exit Sub
End If
End Sub
je ne vois pas ou est le souci dans le code...
Public Sub tab1()
Application.ScreenUpdating = False
Select Case [J36]
Case 3
Range("44:55").EntireRow.Hidden = True
Case Is > 3, Is <= 15
Range("44:55").EntireRow.Hidden = True
Range("44:44").Resize([J36] - 2).EntireRow.Hidden = False
End Select
Application.ScreenUpdating = True
End Sub
-------------------------------------------------------------------------------
Private Sub SpinButton1_SpinDown()
If Range("j36") > 3 Then
Range("j36").Value = Range("j36").Value - 1
tab1
Else
Exit Sub
End If
End Sub
-------------------------------------------------------------------------------
Private Sub SpinButton1_SpinUp()
If Range("j36") < 15 Then
Range("j36").Value = Range("j36").Value + 1
tab1
Else
Exit Sub
End If
End Sub
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
6 janv. 2010 à 11:01
6 janv. 2010 à 11:01
Je ne sais pas si c'est dû à ça mais de toute façon j'avais fait une erreur.
Essaie avec :
eric
Essaie avec :
Application.ScreenUpdating = False Select Case [J36] Case 3 Range("44:55").EntireRow.Hidden = True Case 4 To 15 Range("44:55").EntireRow.Hidden = True Range("44:44").Resize([J36] - 3).EntireRow.Hidden = False End Select Application.ScreenUpdating = True
eric
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
6 janv. 2010 à 11:21
6 janv. 2010 à 11:21
A 1ère vue je ne vois rien qui provoquerait ça.
Sur mon exemple 1 seule ligne en plus ou en moins.
Peut-être as-tu un évènement change où tu as oublié cancel=true (?)
Pour ton SpinButton utilises ses propriétés linkedcell, min et max, ça fait toujours ça de lignes de codes en moins.
eric
Sur mon exemple 1 seule ligne en plus ou en moins.
Peut-être as-tu un évènement change où tu as oublié cancel=true (?)
Pour ton SpinButton utilises ses propriétés linkedcell, min et max, ça fait toujours ça de lignes de codes en moins.
eric
6 janv. 2010 à 10:16