Appliquer un code VBA a toute les feuilles
Bonsoir a tous,Sur un classeur comportant plusieurs feuille identique je viens renseigner la feuille active par un USERFORM comportant plusieurs TextBox.
Mon problème est que pour cela le code a été placé dans la feuil1 , j'active le Userform quand je me positionne sur une cellule de cette feuil1.
Le Userform s'ouvre , je renseigne les Texbox et après validation celui ci inject ma saisie dans la feuil1.
Y a t'i un moyen d’appliquer le code ce trouvant dans la feuil1 au autre feuil ou doit on le dupliquer sur toutes les feuilles.
Ci dessous mon code pressent dans la feuil1.
Private Sub Worksheet_Calculate()
On Error Resume Next 'au cas ou nom de feuille existe déjà ou invalide
Me.Name = Range("B7")
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "B7" And Target.Text <> vbNullString Then ActiveSheet.Name = Target.Text
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'''''''''''''''Blocage de l'ouverture du masque de saisie'''''''''''''''''
'''Declenchement du masque de saisie a l'activation d'une cellule comprise dans une plage donnée
If Not Application.Intersect(Target, Range("B10:P47")) Is Nothing Then 'sur la plage prevue
If ActiveCell.Value <> "" Then 'si la cellule n'est pas vide alors
With ActiveCell ' sur la cellule active
'ActiveCell.FormulaR1C1 = "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & ""
With Selection.Font 'couleur de police noir
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
Masquedesaisie.Show 'ouverture du masque de saisie
End With
End With
End If
End If
End Sub
Merci de votre aide
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonsoir,
Il suffit d'insérer le code dans ThisWorkBook avec les procédures événementielles suivantes :
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
On Error Resume Next 'au cas ou nom de feuille existe déjà ou invalide
Sh.Name = Range("B7")
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address(0, 0) = "B7" And Target.Text <> vbNullString Then Sh.Name = Target.Text
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'''''''''''''''Blocage de l'ouverture du masque de saisie'''''''''''''''''
'''Declenchement du masque de saisie a l'activation d'une cellule comprise dans une plage donnée
If Not Application.Intersect(Target, Sh.Range("B10:P47")) Is Nothing Then 'sur la plage prevue
If ActiveCell.Value <> "" Then 'si la cellule n'est pas vide alors
With ActiveCell ' sur la cellule active
'ActiveCell.FormulaR1C1 = "" & Chr(10) & "" & Chr(10) & "" & Chr(10) & ""
With Selection.Font 'couleur de police noir
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
Masquedesaisie.Show 'ouverture du masque de saisie
End With
End With
End If
End If
End Subbonsoir THEV,
Un grand merci pour ton aide ça fonctionne très bien.
Encore Merci
Jimmy