Compteur de ligne conditionnel à aff/masquer
Fermé
la crotte de charles
-
4 août 2010 à 17:05
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 5 août 2010 à 16:20
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 5 août 2010 à 16:20
A voir également:
- Compteur de ligne conditionnel à aff/masquer
- Compteur électrique - Guide
- Aller à la ligne excel - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
11 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
4 août 2010 à 17:27
4 août 2010 à 17:27
Bonjour,
Sais pas si j'ai bien compris...
Compte le nombre de ligne(s) visible(s).
A+
Sais pas si j'ai bien compris...
Function NbVisible() As Long Dim Lig As Long For Lig = 1 To Range("A65335").End(xlUp).Row If Not Rows(Lig).Hidden Then NbVisible = NbVisible + 1 Next Lig End Function
Compte le nombre de ligne(s) visible(s).
A+
oui, ca semble etre bon mais il manquerait une ligne de code pour faire en sorte que les lignes se dimensionne en hauteur par rapport a nbvisible
de sorte que les lignes comprisent dans mon range prennent chancune une hauteur prédéterminé à l'aide de nbvisible
ex:
Function NbVisible() As Long
Dim Lig As Long
For Lig = 1 To Range("tableau").Row
If Not Rows(Lig).Hidden Then NbVisible = NbVisible + 1
Next Lig
End Function
voici j'ai modifier ton code pour range("tableau") et maintenant je veux que toute les lignes visibles du range tableau prenne la dimension 200/nbvisible
je sais pas si je suis assez clair
merci
de sorte que les lignes comprisent dans mon range prennent chancune une hauteur prédéterminé à l'aide de nbvisible
ex:
Function NbVisible() As Long
Dim Lig As Long
For Lig = 1 To Range("tableau").Row
If Not Rows(Lig).Hidden Then NbVisible = NbVisible + 1
Next Lig
End Function
voici j'ai modifier ton code pour range("tableau") et maintenant je veux que toute les lignes visibles du range tableau prenne la dimension 200/nbvisible
je sais pas si je suis assez clair
merci
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/08/2010 à 19:32
Modifié par lermite222 le 4/08/2010 à 19:32
avec..
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Dim A, B A = Range("tableau").Row B = Range("tableau").Rows.Count Rows(A & ":" & A + B - 1).RowHeight = 200 / NbVisible
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
ca ne marche malheureusement pas je crois que le problème se situe au niveau de la ligne : Rows(A & ":" & A + B - 1).RowHeight = 200 / NbVisible
car si je masque la ligne 1 (range tableau = ligne 1 à 4 ) il bug et si je masque une des autres ligne 2,3 ou 4 il fait reapparaitre les lignes et les dimensionnent ce que je veux c'est :
si il n'y a pas de ligne masquer, chacune des lignes 1,2,3 et 4 seront de 50...
si il y a une ligne de masquer, les trois autres seront de 66.67
si il y a 2 ligne de masquer, les 2 restant seront de 100 chacun
si il y a 3 lignes de masquer , la ligne restant sera de 200
je crois que nous approchont de la solution
merci de tes réponses si rapide...tu est plutot doué pas comme moi :(
car si je masque la ligne 1 (range tableau = ligne 1 à 4 ) il bug et si je masque une des autres ligne 2,3 ou 4 il fait reapparaitre les lignes et les dimensionnent ce que je veux c'est :
si il n'y a pas de ligne masquer, chacune des lignes 1,2,3 et 4 seront de 50...
si il y a une ligne de masquer, les trois autres seront de 66.67
si il y a 2 ligne de masquer, les 2 restant seront de 100 chacun
si il y a 3 lignes de masquer , la ligne restant sera de 200
je crois que nous approchont de la solution
merci de tes réponses si rapide...tu est plutot doué pas comme moi :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/08/2010 à 19:56
Modifié par lermite222 le 4/08/2010 à 19:56
1°) Juste, ça réaffiche les lignes
2°) mais ta ligne..
n'est pas bonne, faut faire...
3°) Je prépare la suite
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
2°) mais ta ligne..
For Lig = 1 To Range("tableau").Row
n'est pas bonne, faut faire...
For Lig = Range("tableau").Row to Range("tableau").Row.count +Range("tableau").Row -1
3°) Je prépare la suite
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/08/2010 à 20:07
Modifié par lermite222 le 4/08/2010 à 20:07
Voila une fonction qui... fonctionne :-)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Function NbVisible() As Long Dim Lig As Long, LigDeb As Long, LigFin As Long, HT As Single LigDeb = Range("tableau").Row LigFin = Range("tableau").Row + Range("tableau").Rows.Count - 1 For Lig = LigDeb To LigFin If Not Rows(Lig).Hidden Then NbVisible = NbVisible + 1 Next Lig HT = 200 / NbVisible For Lig = LigDeb To LigFin If Not Rows(Lig).Hidden Then Rows(Lig).RowHeight = HT Next Lig End Function
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
ouais ca marche disons que maintenant j'ai plusieur plages nommé
tableau1
tableau2
tableau3
est ce que je peut alligner ces lignes de code autant de fois que j'ai de plages nommées ?? et pour l'instant il est sous forme de fonction comment puis-je l'associé à un bouton le même que pour mon filtre ( il serait dans la meme macro après le filtre de manière a ce que les lignes s'ajuste avant de voir le résultat de la recherche. Ou p-t mettre se code dans une macro evenementielle qui au déclenchement de mon bouton "recherche" les lignes s'ajuste
Dernier petit bug... si toute les lignes sont masquer il me sort une erreur car division par zéro comment contourné se problème...?
pour le reste c'est nickel ! merci bcp !!
tableau1
tableau2
tableau3
est ce que je peut alligner ces lignes de code autant de fois que j'ai de plages nommées ?? et pour l'instant il est sous forme de fonction comment puis-je l'associé à un bouton le même que pour mon filtre ( il serait dans la meme macro après le filtre de manière a ce que les lignes s'ajuste avant de voir le résultat de la recherche. Ou p-t mettre se code dans une macro evenementielle qui au déclenchement de mon bouton "recherche" les lignes s'ajuste
Dernier petit bug... si toute les lignes sont masquer il me sort une erreur car division par zéro comment contourné se problème...?
pour le reste c'est nickel ! merci bcp !!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/08/2010 à 23:20
Modifié par lermite222 le 4/08/2010 à 23:20
J'espère que c'est la dernière modif, j'en ai Ma.. de chaques fois recommencer.
Remplace la macro par...
et dans le code du bouton..
Vaut mieux laisser les macros séparées.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Remplace la macro par...
Public Sub NbVisible(Table As Range) Dim Lig As Long, LigDeb As Long, LigFin As Long, HT As Single, VU As Integer LigDeb = Table.Row LigFin = Table.Row + Table.Rows.Count - 1 For Lig = LigDeb To LigFin If Not Rows(Lig).Hidden Then VU = VU + 1 Next Lig If VU > 0 Then HT = 200 / VU For Lig = LigDeb To LigFin If Not Rows(Lig).Hidden Then Rows(Lig).RowHeight = HT Next Lig End If End Sub
et dans le code du bouton..
Private Sub CommandButton1_Click() Application.ScreenUpdating = False TaMacroFiltre NbVisible Range("Tableau1") NbVisible Range("Tableau2") '...... Application.ScreenUpdating = True End Sub
Vaut mieux laisser les macros séparées.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
4 août 2010 à 23:39
4 août 2010 à 23:39
Si tu a beaucoup de tableaux...
Remplace le code du bouton par..
A+
Remplace le code du bouton par..
Private Sub CommandButton1_Click() Dim i As Integer Application.ScreenUpdating = False TaMacroFiltre With ActiveWorkbook For i = 1 To .Names.Count If Left(.Names(i).Name, 5) = "Table" Then NbVisible Range(.Names(i).Name) Next i End With Application.ScreenUpdating = True End Sub
A+
voila merci beaucoup tous fonctionne il y a une dernière chose mais c'est parce que je suis trop perfectionniste ca va aller comme ca encore une fois merci de ta patience et de partager ton savoir en prog.
Par contre si tu dit que tu en a ta .... pk vient tu aidé les gens sur ce forum ?
Pour ma part je trouve ca admirable de donner son temps comme ca a des inconnus ...
Merci
Au Plaisir !!
Par contre si tu dit que tu en a ta .... pk vient tu aidé les gens sur ce forum ?
Pour ma part je trouve ca admirable de donner son temps comme ca a des inconnus ...
Merci
Au Plaisir !!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
5 août 2010 à 16:20
5 août 2010 à 16:20
Sic : Par contre si tu dit que tu en a ta .... pk vient tu aidé les gens sur ce forum ?
Je n'en ai pas marre d'aider les gens comme tu dis, ce qui est énervant c'est qu'à chaque fois tu change la situation ce qui oblige à refaire une autre macro et ce, toujours pour le même problème, mal expliquer au départ...
Voilà.
A+
Je n'en ai pas marre d'aider les gens comme tu dis, ce qui est énervant c'est qu'à chaque fois tu change la situation ce qui oblige à refaire une autre macro et ce, toujours pour le même problème, mal expliquer au départ...
Voilà.
A+