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
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- 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)