Excel VBA
Capucine21
Messages postés
65
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
L'année dernière je voulais un petit programme VBA qui me permette de masquer/afficher les lignes vides. Problème résolu et cela fonctionne très bien
Mais voilà, en ajoutant mon nouvel onglet "2014", le petit programme ne fonctionne plus sur le nouvel onglet. J'ai essayé de changer le document "mère", mais cela ne fonctionne toujours pas.
N'étant pas très douée en programmation (je débute par rapport à des livres) quelqu'un peut il me donner la formule magique pour que chaque nouvel onglet prenne en compte ce programme
Merci beaucoup.
https://www.cjoint.com/?3Gill2c9XUH
L'année dernière je voulais un petit programme VBA qui me permette de masquer/afficher les lignes vides. Problème résolu et cela fonctionne très bien
Mais voilà, en ajoutant mon nouvel onglet "2014", le petit programme ne fonctionne plus sur le nouvel onglet. J'ai essayé de changer le document "mère", mais cela ne fonctionne toujours pas.
N'étant pas très douée en programmation (je débute par rapport à des livres) quelqu'un peut il me donner la formule magique pour que chaque nouvel onglet prenne en compte ce programme
Merci beaucoup.
https://www.cjoint.com/?3Gill2c9XUH
6 réponses
-
Bonjour,
Plus qu'un seul code dans ThisWorkbook.
Si tu double-cliques en C3 (Janvier) et que A1 de la feuille commence par "Année " tu filtres/défiltres la feuille.
Tu peux donc ajouter autant de feuille que tu veux, en plus j'ai modifié un peu le code ce sera plus rapide.Const coope = 2 Const codeb = 3 Const lideb = 4 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Static bAff As Boolean Dim li As Long, lifin As Long If Left(Sh.[A1], 6) <> "Année " Then Exit Sub Cancel = True bAff = Not bAff Application.ScreenUpdating = False With Sh If Not bAff Then .Rows.Hidden = False Else lifin = .Cells(Rows.Count, coope).End(xlUp).Row For li = lideb To lifin If Application.CountA(Cells(li, codeb).Resize(, 12)) = 0 Then .Rows(li).Hidden = True Next li End If End With Application.ScreenUpdating = True End Sub
https://www.cjoint.com/?DGimHVFM789
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci -
Désoler j'ai pas accès a ton fichier là ou je suis est-ce que c'est possible de nous transmettre directement dans un balise
<code basic>
? -
Bonjour
Modification de ta macro
Option Explicit 'Const NF = "2013" Const coope = 2 Const codeb = 3 Const lideb = 4 Public Sub Masquer() Dim li As Long, lifin As Long, s, co As Long Application.ScreenUpdating = False 'With Sheets(NF) lifin = Cells(Rows.Count, coope).End(xlUp).Row For li = lideb To lifin s = "" For co = codeb To codeb + 11 s = s & Cells(li, co) Next co If s = "" Then Rows(li).Hidden = True Next li 'End With End Sub Public Sub Afficher() 'With Sheets(NF) Rows(1 & ":" & 1000).Hidden = False 'End With Application.ScreenUpdating = True End Sub
A+
Maurice -
Bonjour
Tu cliques sur Développeur ensuite sur Visual Basic
A la place de 2013 tu mets 2014 et retourne dans ta feuille excel en cliquant sur l'icone excel qui se trouve au-dessus de VBAProjet
Cordialement -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci à jc80, ça fonctionne pour l'onglet 2014 mais plus sur l'onglet 2013
Il n'y a pas possiblité de concerver ce programme sur les anciens onglets ? -