MACRO-masquer/afficher lignes
Résolu
100drine
-
100drine -
100drine -
Bonjour,
Etant débutante en VBA, j'ai après des recherches sur des forums essayé de faire une petite macro pour que sur une feuille excel il me cache les lignes quand il y a 0 dans ma colonne F mais qu'il me les ré-affiches quand la valeur en colonne F ne soit plus 0. Et ça à partir d'un bouton sur ma feuille excel.
Par contre j'ai plusieurs problèmes :
1- je ne sais pas comment faire si j'ai des lignes vides entre plusieurs lignes avec des nombres, car il me bloque sur la première ligne vide surement du à :Do While ActiveCell <> "", mais je ne sais pas quoi mettre d'autre à la place.
2- une fois la macro effectuée, il met mon curseur (cellule surlignée) tout en bas du tableau (F10), mais en haut de la fenetre (je ne sais pas trop si vous voyez ce que je veux dire) mais je suis obligée de remonter la feuille avec la roulette..
Je vous met mon code, piqué un peu partout sur les forums.. En espérant que quelqu'un pourra m'aider.
Merci d'avance
Sub MasQLigne()
Application.ScreenUpdating = False
'Mise en place au départ
Range("F1:F10").Select
Do While ActiveCell <> ""
'Effacement de ligne
If ActiveCell = 0 Then
Selection.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
End If
'Affichage de ligne
If ActiveCell.Value <> 0 Then
Selection.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Select
End If
Loop
Application.ScreenUpdating = True
End Sub
Etant débutante en VBA, j'ai après des recherches sur des forums essayé de faire une petite macro pour que sur une feuille excel il me cache les lignes quand il y a 0 dans ma colonne F mais qu'il me les ré-affiches quand la valeur en colonne F ne soit plus 0. Et ça à partir d'un bouton sur ma feuille excel.
Par contre j'ai plusieurs problèmes :
1- je ne sais pas comment faire si j'ai des lignes vides entre plusieurs lignes avec des nombres, car il me bloque sur la première ligne vide surement du à :Do While ActiveCell <> "", mais je ne sais pas quoi mettre d'autre à la place.
2- une fois la macro effectuée, il met mon curseur (cellule surlignée) tout en bas du tableau (F10), mais en haut de la fenetre (je ne sais pas trop si vous voyez ce que je veux dire) mais je suis obligée de remonter la feuille avec la roulette..
Je vous met mon code, piqué un peu partout sur les forums.. En espérant que quelqu'un pourra m'aider.
Merci d'avance
Sub MasQLigne()
Application.ScreenUpdating = False
'Mise en place au départ
Range("F1:F10").Select
Do While ActiveCell <> ""
'Effacement de ligne
If ActiveCell = 0 Then
Selection.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
End If
'Affichage de ligne
If ActiveCell.Value <> 0 Then
Selection.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Select
End If
Loop
Application.ScreenUpdating = True
End Sub
A voir également:
- MACRO-masquer/afficher lignes
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Afficher appdata - Guide
- Masquer conversation whatsapp - Guide
- Comment masquer les amis sur facebook - Guide
- Comment appeler en masquer - Guide
3 réponses
Bonjour,
Essayez ceci :
Je ne l'ai pas testé donc revenez après test me dire si cela fonctionne
Essayez ceci :
Sub MasQLigne() Dim Cell As Range 'Mise en place au départ For Each Cell In Range("F1:F10") If Cell = "0" Then Cell.EntireRow.Hidden = True Else 'Affichage de ligne Cell.EntireRow.Hidden = False End If Next End Sub
Je ne l'ai pas testé donc revenez après test me dire si cela fonctionne
100drine
Merci beaucoup pour cette solution elle marche à merveille !!
Lut
Y'a un peu plus simple si tu ne dois faire ca qu'entre F1 et F10 :
Essaies ca et dis moi si ca te va :-)
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
Y'a un peu plus simple si tu ne dois faire ca qu'entre F1 et F10 :
Sub MasQLigne() Application.ScreenUpdating = False 'Mise en place au départ For i=1 to 10 cells(i,6).select ' C'est une autre facon de sélectionner une cellule, i étant ici le numéro de ligne et 6 l'indice de la colonne (F étant la 6e lettre) 'Effacement de ligne If ActiveCell = 0 Then Selection.EntireRow.Hidden = True Else 'Affichage de ligne Selection.EntireRow.Hidden = False End If Next i Range("A1").Select ' Ca te permet de surligner la cellule A1 et donc de te retrouver en haut de page Application.ScreenUpdating = True End Sub
Essaies ca et dis moi si ca te va :-)
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
En fait elle me cache les lignes avec 0 mais me cache aussi les lignes ou il n'y a rien dans la case, ce que je ne veux pas. Merci quand même pour ton aide... et surtout pour tes explications intercalées dans ton code, qui m'aident a en apprendre un peu plus sur cette programmation qui n'est pas évidente quand tu n'es pas adepte du langage informatique.
Mais j'ai la solution du haut qui me convient mieux et qui n'efface pas les lignes vides.
Mais j'ai la solution du haut qui me convient mieux et qui n'efface pas les lignes vides.
Bonjour,
Essaie avec ça:
;o)
Essaie avec ça:
Sub MasQLigne() Dim plage As Range Dim cel Application.ScreenUpdating = False 'Mise en place au départ Set plage = Worksheets(1).Range("F1:F10") For Each cel In plage 'Effacement de ligne If cel.Value = 0 Then Rows(cel.Row).EntireRow.Hidden = True Else Rows(cel.Row).EntireRow.Hidden = False End If Next cel Application.ScreenUpdating = True End Sub
;o)