Excel VBA

Fermé
Capucine21 Messages postés 63 Date d'inscription lundi 8 avril 2013 Statut Membre Dernière intervention 3 octobre 2023 - 8 juil. 2014 à 11:12
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 8 juil. 2014 à 13:14
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

6 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 8/07/2014 à 12:35
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
1
Capucine21 Messages postés 63 Date d'inscription lundi 8 avril 2013 Statut Membre Dernière intervention 3 octobre 2023 1
8 juil. 2014 à 13:11
C'est super, comment faites vous cela ?
Je ne vois plus ma macro ?
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
8 juil. 2014 à 13:14
bis repetita : Plus qu'un seul code dans ThisWorkbook.
eric
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
8 juil. 2014 à 11:20
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>
?
0
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
0
jc80 Messages postés 4242 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 424
8 juil. 2014 à 11:49
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Capucine21 Messages postés 63 Date d'inscription lundi 8 avril 2013 Statut Membre Dernière intervention 3 octobre 2023 1
8 juil. 2014 à 11:59
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 ?
0
Capucine21 Messages postés 63 Date d'inscription lundi 8 avril 2013 Statut Membre Dernière intervention 3 octobre 2023 1
8 juil. 2014 à 11:59
Je ne sais pas ce que c'est un balise
0