Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
"Denys" a écrit dans le message de news:185be01c41b
0b$e8bdf590$
Bonjour à tous,
[.....]
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
"Denys" <anonymous@discussions.microsoft.com> a écrit dans le message de news:185be01c41b
0b$e8bdf590$a401280a@phx.gbl...
Bonjour à tous,
[.....]
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
"Denys" a écrit dans le message de news:185be01c41b
0b$e8bdf590$
Bonjour à tous,
[.....]
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
-----Original Message-----
Bonjour Denys,
J'ai supposé que tes données (nom des feuilles) étaient
dans la colonne A1:A15 de la feuille récapitulation.
Avec ces procédures, ton classeur contiendra seulement
des feuilles listées en colonne A de ta feuille. Si tu
nom d'une feuille, la feuille sera supprimé et si tu
ajoutes un nouveau nom, la feuille sera ajoutée.
Si tu veux être certain qu'un usager n'utilise pas 2 fois
le même nom, utilise un critère de validation directement
ta plage de cellules.
Si tes feuilles doivent être visible ou non... tu devras
ajouter une ligne de code...
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
'Pour initialer la variable public dès l'ouverture du
fichier :
'-------------------
Private Sub Workbook_Open()
ListeDesFeuilles
End Sub
'-------------------
Dans la feuille module où l'action se déroule, copie ce
qui suit :
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, A As Integer, ActiveFeuille As String
ActiveFeuille = ActiveSheet.Name
Set Rg = Range("A1:A15").SpecialCells
(xlCellTypeConstants, xlTextValues)
If Intersect(Target, Rg) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
For A = 1 To UBound(Tblo)
If IsError(Application.Match(Tblo(A), Rg, 0)) Then
Application.DisplayAlerts = False
Worksheets(Tblo(A)).Delete
Err = 0
Application.DisplayAlerts = True
End If
Next
If Not Rg Is Nothing Then
For Each c In Target
If c.Value <> "" Then
Set sh = Worksheets(c.Value)
If Err <> "" Then
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = c.Value
Err = 0
End If
End If
Next
End If
ListeDesFeuilles
Sheets(ActiveFeuille).Select
Set Rg = Nothing
End Sub
'------------------------------
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
Salutations!
"Denys" a écrit
dans le message de news:185be01c41b0b$e8bdf590
Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
.
-----Original Message-----
Bonjour Denys,
J'ai supposé que tes données (nom des feuilles) étaient
dans la colonne A1:A15 de la feuille récapitulation.
Avec ces procédures, ton classeur contiendra seulement
des feuilles listées en colonne A de ta feuille. Si tu
nom d'une feuille, la feuille sera supprimé et si tu
ajoutes un nouveau nom, la feuille sera ajoutée.
Si tu veux être certain qu'un usager n'utilise pas 2 fois
le même nom, utilise un critère de validation directement
ta plage de cellules.
Si tes feuilles doivent être visible ou non... tu devras
ajouter une ligne de code...
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
'Pour initialer la variable public dès l'ouverture du
fichier :
'-------------------
Private Sub Workbook_Open()
ListeDesFeuilles
End Sub
'-------------------
Dans la feuille module où l'action se déroule, copie ce
qui suit :
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, A As Integer, ActiveFeuille As String
ActiveFeuille = ActiveSheet.Name
Set Rg = Range("A1:A15").SpecialCells
(xlCellTypeConstants, xlTextValues)
If Intersect(Target, Rg) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
For A = 1 To UBound(Tblo)
If IsError(Application.Match(Tblo(A), Rg, 0)) Then
Application.DisplayAlerts = False
Worksheets(Tblo(A)).Delete
Err = 0
Application.DisplayAlerts = True
End If
Next
If Not Rg Is Nothing Then
For Each c In Target
If c.Value <> "" Then
Set sh = Worksheets(c.Value)
If Err <> "" Then
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = c.Value
Err = 0
End If
End If
Next
End If
ListeDesFeuilles
Sheets(ActiveFeuille).Select
Set Rg = Nothing
End Sub
'------------------------------
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
Salutations!
"Denys" <anonymous@discussions.microsoft.com> a écrit
dans le message de news:185be01c41b0b$e8bdf590
Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
.
-----Original Message-----
Bonjour Denys,
J'ai supposé que tes données (nom des feuilles) étaient
dans la colonne A1:A15 de la feuille récapitulation.
Avec ces procédures, ton classeur contiendra seulement
des feuilles listées en colonne A de ta feuille. Si tu
nom d'une feuille, la feuille sera supprimé et si tu
ajoutes un nouveau nom, la feuille sera ajoutée.
Si tu veux être certain qu'un usager n'utilise pas 2 fois
le même nom, utilise un critère de validation directement
ta plage de cellules.
Si tes feuilles doivent être visible ou non... tu devras
ajouter une ligne de code...
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
'Pour initialer la variable public dès l'ouverture du
fichier :
'-------------------
Private Sub Workbook_Open()
ListeDesFeuilles
End Sub
'-------------------
Dans la feuille module où l'action se déroule, copie ce
qui suit :
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, A As Integer, ActiveFeuille As String
ActiveFeuille = ActiveSheet.Name
Set Rg = Range("A1:A15").SpecialCells
(xlCellTypeConstants, xlTextValues)
If Intersect(Target, Rg) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
For A = 1 To UBound(Tblo)
If IsError(Application.Match(Tblo(A), Rg, 0)) Then
Application.DisplayAlerts = False
Worksheets(Tblo(A)).Delete
Err = 0
Application.DisplayAlerts = True
End If
Next
If Not Rg Is Nothing Then
For Each c In Target
If c.Value <> "" Then
Set sh = Worksheets(c.Value)
If Err <> "" Then
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = c.Value
Err = 0
End If
End If
Next
End If
ListeDesFeuilles
Sheets(ActiveFeuille).Select
Set Rg = Nothing
End Sub
'------------------------------
'copie ceci dans un module Standard
'déclaration d'une variable Public dans le haut du module
Public Tblo()
'------------------------------
Sub ListeDesFeuilles()
Dim A As Integer
ReDim Tblo(1 To Sheets.Count)
For Each sh In Worksheets
If sh.Name <> "Récapitulation" Then
A = A + 1
Tblo(A) = sh.Name
End If
Next
End Sub
'------------------------------
Salutations!
"Denys" a écrit
dans le message de news:185be01c41b0b$e8bdf590
Bonjour à tous,
Je fais une petite application pour quelques départements
qui comptent de 5 à 15 employés. Comme chaque employé a
une feuille Excel correspondant à son nom, certains
départements auront des feuilles en trop.
Le nom des employés est inscrit en colonne A sur la
feuille nommée Récapitulation.
Ma question est la suivante: serait-il possible que je
crée à l'avance les feuilles de travail et que celles-ci
restent cachées jusqu'à ce que le superviseur entre le nom
d'un employé dans une cellule de la colonne A de la
feuille récapitulation?
Déjà que cette feuille prend le nom de l'employé en
l'activant, je voudrais cependant qu'elle reste cachée
tant qu'il n'y a pas un nom inscrit dans la cellule...
Auriez-vous une petite idée???
Merci
Denys
.