Cacher des feuilles Excel avec des macros
Résolu
roudiroud
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
roudiroud Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
roudiroud Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour le Forum,
Je voulais savoir si il était possible de cacher les feuilles avec des macros dessus ?
Le problème c'est que lorsque je les caches, les macros ne peuvent plus fonctionner !
Avez-vous une petite solution
Je voulais savoir si il était possible de cacher les feuilles avec des macros dessus ?
Le problème c'est que lorsque je les caches, les macros ne peuvent plus fonctionner !
Avez-vous une petite solution
A voir également:
- Cacher des feuilles Excel avec des macros
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Bruler des feuilles de laurier - Guide
- Fusionner des feuilles excel - Guide
- Trier des données excel - Guide
4 réponses
Bonjour,
si je comprends bien ton problème, pour tes macros, ouvre un module et déplace les dans le module
ensuite deux possibilités pour masquer tes feuilles
1/ simplement masquée mais visible en simple clic droit sur un onglet et afficher
2/ invisible et affichage des feuilles masquées uniquement par VBA et mot de passe
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
si je comprends bien ton problème, pour tes macros, ouvre un module et déplace les dans le module
ensuite deux possibilités pour masquer tes feuilles
1/ simplement masquée mais visible en simple clic droit sur un onglet et afficher
2/ invisible et affichage des feuilles masquées uniquement par VBA et mot de passe
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
roudiroud
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
En faite le problème c'est que dès que je les masque je ne peux plus aller chercher les données qui ce trouve dessus avec mes macros :(
Re,
comment as tu écris ton code !
exemple tu veux rapatrier des données de la cellule F7 d la feuille masquée nommée TITI et les placer dans la feuille TOTO cellule B5
le code est
Sheets("TOTO").Range("B5") = Sheets("TITI").Range("F7")
ou plus court
Sheets("TOTO").[B5] = Sheets("TITI").[F7]
comment as tu écris ton code !
exemple tu veux rapatrier des données de la cellule F7 d la feuille masquée nommée TITI et les placer dans la feuille TOTO cellule B5
le code est
Sheets("TOTO").Range("B5") = Sheets("TITI").Range("F7")
ou plus court
Sheets("TOTO").[B5] = Sheets("TITI").[F7]
Re,
serait il possible d'avoir une copie anonymisé de ton fichier de sorte de voir sa structure que tu peux joindre à partir de ce lien
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien Cjoint en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
serait il possible d'avoir une copie anonymisé de ton fichier de sorte de voir sa structure que tu peux joindre à partir de ce lien
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien Cjoint en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
Module 1 :
Sub Actualiser()
'--------------------------------------- Permet de copier les données dans une feuille à l'autre -----------------------------------------
Dim ShSource As Worksheet
Dim LigneDeTitreSource As Long
Dim DerniereLigneSource As Long
Dim DerniereColonneSource As Long
Dim AireSource As Range
Dim ShCible As Worksheet
Dim DerniereLigneCible As Long
Set ShSource = Sheets("Base_du_JOUR")
Set ShCible = Sheets("Préparation")
With ShSource
LigneDeTitreSource = 1
DerniereLigneSource = .Cells(.Rows.Count, 1).End(xlUp).Row
DerniereColonneSource = .Cells(LigneDeTitreSource, .Columns.Count).End(xlToLeft).Column
Set AireSource = .Range(.Cells(LigneDeTitreSource + 1, 1), .Cells(DerniereLigneSource, DerniereColonneSource))
End With
With ShCible
DerniereLigneCible = .Cells(.Rows.Count, 1).End(xlUp).Row
AireSource.Copy .Cells(DerniereLigneCible + 1, 1)
End With
Set AireSource = Nothing
Set ShSource = Nothing
Set ShCible = Nothing
'----------------------------- Permet d'actualisé les feuilles "Bases_du_jour" .....-------------------------------------
Sheets("Base_du_JOUR").Select
ActiveWorkbook.RefreshAll
Sheets("Base ENTIERE").Select
ActiveWorkbook.RefreshAll
Sheets("Feuil3").Select
ActiveWorkbook.RefreshAll
Sheets("TAUX").Select
ActiveWorkbook.RefreshAll
Sheets("Menu").Select
'---------------------------------Permet de filtrer les montant en-dessous de -20 et les écarts qui n'ont pas d'email ---------------------------
Sheets("Préparation").Select
Columns("A:M").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$M$24").AutoFilter Field:=7, Criteria1:=">-20", _
Operator:=xlAnd
ActiveSheet.Range("$A$1:$M$24").AutoFilter Field:=13, Criteria1:="<>"
Selection.ClearContents
Selection.AutoFilter
Sheets("Menu").Select
' --------------------------------------- Permet de copier et coler des données -------------------------------------
Sheets("Base_du_JOUR").Select
Rows("1:1").Select
Selection.Copy
Sheets("Préparation").Select
Rows("1:1").Select
ActiveSheet.Paste
Sheets("Menu").Select
Sheets("Base_du_JOUR").Select
Range("B2").Select
Selection.Copy
Sheets("Feuil3").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Menu").Select
Sheets("Préparation").Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$S$6").AutoFilter Field:=13, Criteria1:="="
ActiveSheet.Range("$A$1:$S$6").AutoFilter Field:=7, Criteria1:=">-10", _
Operator:=xlAnd
Range("A3:O7037").Select
Selection.ClearContents
Selection.AutoFilter
Sheets("Menu").Select
' -------------------------------- Permet de supprimer les cellules vides dans la colonne A -------------------------------------------
Sheets("Feuil3").Select
Range("A2:J2").Select
Selection.Copy
Range("A3:J3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Base_du_JOUR").Select
ActiveWorkbook.RefreshAll
Sheets("Base ENTIERE").Select
ActiveWorkbook.RefreshAll
Sheets("Feuil3").Select
ActiveWorkbook.RefreshAll
Sheets("TAUX").Select
ActiveWorkbook.RefreshAll
Sheets("Menu").Select
'--------------------------------------- Permet de copier les données dans une feuille à l'autre -----------------------------------------
Set ShSource = Sheets("Feuil3")
Set ShCible = Sheets("TAUX")
With ShSource
LigneDeTitreSource = 2
DerniereLigneSource = .Cells(.Rows.Count, 1).End(xlUp).Row
DerniereColonneSource = .Cells(LigneDeTitreSource, .Columns.Count).End(xlToLeft).Column
Set AireSource = .Range(.Cells(LigneDeTitreSource + 1, 1), .Cells(DerniereLigneSource, DerniereColonneSource))
End With
With ShCible
DerniereLigneCible = .Cells(.Rows.Count, 1).End(xlUp).Row
AireSource.Copy .Cells(DerniereLigneCible + 1, 1)
End With
Set AireSource = Nothing
Set ShSource = Nothing
Set ShCible = Nothing
Sheets("Préparation").Select
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Sheets("Menu").Select
Sheets("Préparation").Select
Range("N1").Select
ActiveCell.FormulaR1C1 = "Temps(HH:MM:SS)"
Sheets("Menu").Select
Sub Actualiser()
'--------------------------------------- Permet de copier les données dans une feuille à l'autre -----------------------------------------
Dim ShSource As Worksheet
Dim LigneDeTitreSource As Long
Dim DerniereLigneSource As Long
Dim DerniereColonneSource As Long
Dim AireSource As Range
Dim ShCible As Worksheet
Dim DerniereLigneCible As Long
Set ShSource = Sheets("Base_du_JOUR")
Set ShCible = Sheets("Préparation")
With ShSource
LigneDeTitreSource = 1
DerniereLigneSource = .Cells(.Rows.Count, 1).End(xlUp).Row
DerniereColonneSource = .Cells(LigneDeTitreSource, .Columns.Count).End(xlToLeft).Column
Set AireSource = .Range(.Cells(LigneDeTitreSource + 1, 1), .Cells(DerniereLigneSource, DerniereColonneSource))
End With
With ShCible
DerniereLigneCible = .Cells(.Rows.Count, 1).End(xlUp).Row
AireSource.Copy .Cells(DerniereLigneCible + 1, 1)
End With
Set AireSource = Nothing
Set ShSource = Nothing
Set ShCible = Nothing
'----------------------------- Permet d'actualisé les feuilles "Bases_du_jour" .....-------------------------------------
Sheets("Base_du_JOUR").Select
ActiveWorkbook.RefreshAll
Sheets("Base ENTIERE").Select
ActiveWorkbook.RefreshAll
Sheets("Feuil3").Select
ActiveWorkbook.RefreshAll
Sheets("TAUX").Select
ActiveWorkbook.RefreshAll
Sheets("Menu").Select
'---------------------------------Permet de filtrer les montant en-dessous de -20 et les écarts qui n'ont pas d'email ---------------------------
Sheets("Préparation").Select
Columns("A:M").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$M$24").AutoFilter Field:=7, Criteria1:=">-20", _
Operator:=xlAnd
ActiveSheet.Range("$A$1:$M$24").AutoFilter Field:=13, Criteria1:="<>"
Selection.ClearContents
Selection.AutoFilter
Sheets("Menu").Select
' --------------------------------------- Permet de copier et coler des données -------------------------------------
Sheets("Base_du_JOUR").Select
Rows("1:1").Select
Selection.Copy
Sheets("Préparation").Select
Rows("1:1").Select
ActiveSheet.Paste
Sheets("Menu").Select
Sheets("Base_du_JOUR").Select
Range("B2").Select
Selection.Copy
Sheets("Feuil3").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Menu").Select
Sheets("Préparation").Select
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$S$6").AutoFilter Field:=13, Criteria1:="="
ActiveSheet.Range("$A$1:$S$6").AutoFilter Field:=7, Criteria1:=">-10", _
Operator:=xlAnd
Range("A3:O7037").Select
Selection.ClearContents
Selection.AutoFilter
Sheets("Menu").Select
' -------------------------------- Permet de supprimer les cellules vides dans la colonne A -------------------------------------------
Sheets("Feuil3").Select
Range("A2:J2").Select
Selection.Copy
Range("A3:J3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Base_du_JOUR").Select
ActiveWorkbook.RefreshAll
Sheets("Base ENTIERE").Select
ActiveWorkbook.RefreshAll
Sheets("Feuil3").Select
ActiveWorkbook.RefreshAll
Sheets("TAUX").Select
ActiveWorkbook.RefreshAll
Sheets("Menu").Select
'--------------------------------------- Permet de copier les données dans une feuille à l'autre -----------------------------------------
Set ShSource = Sheets("Feuil3")
Set ShCible = Sheets("TAUX")
With ShSource
LigneDeTitreSource = 2
DerniereLigneSource = .Cells(.Rows.Count, 1).End(xlUp).Row
DerniereColonneSource = .Cells(LigneDeTitreSource, .Columns.Count).End(xlToLeft).Column
Set AireSource = .Range(.Cells(LigneDeTitreSource + 1, 1), .Cells(DerniereLigneSource, DerniereColonneSource))
End With
With ShCible
DerniereLigneCible = .Cells(.Rows.Count, 1).End(xlUp).Row
AireSource.Copy .Cells(DerniereLigneCible + 1, 1)
End With
Set AireSource = Nothing
Set ShSource = Nothing
Set ShCible = Nothing
Sheets("Préparation").Select
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Sheets("Menu").Select
Sheets("Préparation").Select
Range("N1").Select
ActiveCell.FormulaR1C1 = "Temps(HH:MM:SS)"
Sheets("Menu").Select
bonjour
il faut que la macro de la feuille cachée soit dans un module standard
la feuille1 est caché
un petit exemple
dans la feuille2 visible
on a le code
qui appelle la macro "tester_caché" dans le module 1
dans le module 1
Michel
il faut que la macro de la feuille cachée soit dans un module standard
la feuille1 est caché
un petit exemple
dans la feuille2 visible
on a le code
Sub tester_caché()
Call test_caché
End Sub
qui appelle la macro "tester_caché" dans le module 1
dans le module 1
Sub test_caché()
Dim cptr As Byte
With Sheets(1) 'feuille masquée
.Range("B2") = "coucou"
For cptr = 1 To 3
.Cells(cptr, "C") = cptr
Next
.Visible = xlSheetVisible ' pour vetifier si ca a marché
End With
End Sub
Michel