Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro

zumye

XLDnaute Occasionnel
bonsoir le forum

Je voudrais à partir de ce vba se trouvant ma page principale:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$16" Then
Cells.EntireRow.Hidden = False: Cancel = True
ElseIf Target.Column = 1 And Target.Row > 1 And Target.Row < 65536 Then
Range(Cells(Target.Row + 1, 1), Cells(317, 1)).EntireRow.Hidden = True
ElseIf Target.Column = 2 And Target.Row > 1 And Target.Row < 64 Then
Range(Cells(Target.Row + 1, 1), Cells(65, 1)).EntireRow.Hidden = True: Cancel = True
ElseIf Target.Column = 2 And Target.Row > 67 And Target.Row < 114 Then
Range(Cells(Target.Row + 1, 1), Cells(115, 1)).EntireRow.Hidden = True: Cancel = True
ElseIf Target.Column = 2 And Target.Row > 67 And Target.Row < 164 Then
Range(Cells(Target.Row + 1, 1), Cells(165, 1)).EntireRow.Hidden = True: Cancel = True
ElseIf Target.Column = 2 And Target.Row > 67 And Target.Row < 214 Then
Range(Cells(Target.Row + 1, 1), Cells(215, 1)).EntireRow.Hidden = True: Cancel = True
ElseIf Target.Column = 2 And Target.Row > 67 And Target.Row < 264 Then
Range(Cells(Target.Row + 1, 1), Cells(265, 1)).EntireRow.Hidden = True: Cancel = True
ElseIf Target.Column = 2 And Target.Row > 67 And Target.Row < 314 Then
Range(Cells(Target.Row + 1, 1), Cells(315, 1)).EntireRow.Hidden = True: Cancel = True
End If
End Sub


j'aimerai à partir de ce vba se trouvant sur ma page principale trouvé une solution pour que sur cette page que je copie une cinquantaine de fois, évité de copié également ce vba une cinquantaine de fois.
Puis-je donc sur ma page principale faire appel un à nom (ex macro1) au lieu de ce long vba ce qui diminuerai considérablement le poid du fichier.

ex j'ai essayé:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
call macro1
end sub

et mis le le programme dans un module mais ca ne marche pas... comment faire ?

merci
 

Pierrot93

XLDnaute Barbatruc
Re : macro

Bonsoir Zumye

si tu veux que ce code se déclenche sur toutes tes feuiilles, mets le dans le module "thisworkbook" événement "SheetBeforeDoubleClick" :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'ton code
End Sub

bonne soirée
@+
 

zumye

XLDnaute Occasionnel
Re : macro

bonjour le forum

dans ce vba qui concerne toute mes pages:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'le code
End Sub

je voudrai la meme chose à l'exeption d'une page nommée "recap"...
 

Pierrot93

XLDnaute Barbatruc
Re : macro

Bonjour Zumye

essaye comme ci dessous :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.Name <> "recap" Then
'le code
End If
End Sub

bonne journée
@+
 

zumye

XLDnaute Occasionnel
Re : macro

merci ca fonctionne bien mais je ne comprend pas pourquoi en mettant le vba de ma page original à worbook, mon fichier est passé de 480 ko à 540 ko???
je cherche a reduire le poids du fichier
merci
 

Pierrot93

XLDnaute Barbatruc
Re : macro

Bonjour Zumye

oui comprends pas non plus, si tu as bien enlevé le code se trouvant dans le module des feuilles... Ou alors tu as modifié autre chose dans ton classeur...

bon après midi.
@+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…