Traduction d'une macro

sarsargna

XLDnaute Nouveau
Bonjour,

Est-il possible d'avoir une traduction précise de cette macro s'il vous plaît?



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plg As Range, F As Worksheet
Application.ScreenUpdating = False
With Me
Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))
End With
If Not Intersect(Target, Plg) Is Nothing Then
On Error Resume Next
Sheets(Target.Value).Visible = Not Sheets(Target.Value).Visible
Me.Range("$A$1").Select
End If
If Target.Address = "$J$2" Then
For Each F In Worksheets
If F.Name <> Me.Name Then F.Visible = False
Next F
Me.Range("$A$1").Select
End If
If Target.Address = "$J$4" Then
For Each F In Worksheets
F.Visible = True
Next F
Me.Range("$A$1").Select
End If

End Sub



Merci d'avance
 

Fred0o

XLDnaute Barbatruc
Re : Traduction d'une macro

Bonsoir,

Voir la traduction ci-dessous :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Procédure privée : Worksheet_SelectionChange => s’exécute lorsque l’on déplace la sélection. Le paramètre 'utilisé renvoie l’adresse de la sélection et s’appelle Target
Dim Plg As Range, F As Worksheet
'Déclaration de variables : PLg de type plage de cellules et F de type Feuille (onglet)
Application.ScreenUpdating = False
'Suspend le rafraîchissement d’écran, ce qui permet de gagner du temps.
With Me
'En utilisant la feuille actuelle (onglet actuel) désigné par Me
Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))
'On définit que la variable plage contient les cellules B2 à cellule correspondant à la dernière ligne de la feuille et 'colonne située juste à droite du 3° groupe de colonnes utilisé.
End With
'Fin d’utilisation de Me
If Not Intersect(Target, Plg) Is Nothing Then
'Si Target renvoie une cellule contenue dans la zone affectée à Plg
On Error Resume Next
'Gestion d’erreurs : En cas d’erreur, on reprend à l’instruction suivante
Sheets(Target.Value).Visible = Not Sheets(Target.Value).Visible
'Si la feuille (l’onglet) dont le nom est contenu dans la cellule sélectionnée au début de la macro est visible, alors 'on la masque. Si elle est masquée, on la rend visible.
Me.Range("$A$1").Select
'On sélectionne la cellule A1
End If
'Fi de la condition Si

If Target.Address = "$J$2" Then
'Si l’adresse de la cellule sélectionnée qu début de la macro est $I$2, alors on applique les instructions si dessous
For Each F In Worksheets
'Pour chaque feuille du fichier
If F.Name <> Me.Name Then F.Visible = False
'Si le nom de la feuille est différent du nom de la feuille sélectionnée alors on masque la feuille en question. 
Next F
'On passe à la feuille suivante
Me.Range("$A$1").Select
'On sélectionne la cellule $A$1
End If
'Fin de la condition Si
If Target.Address = "$J$4" Then
'Si l’adresse de la cellule sélectionnée qu début de la macro est $I$4, alors on applique les instructions si dessous
For Each F In Worksheets
'Pour chaque feuille du fichier
F.Visible = True
'On rend la feuille visible
Next F
'On passe à la feuille suivante
Me.Range("$A$1").Select
'On sélectionne la cellule $A$1
End If
'Fin de la condition Si
End Sub
'Fin de la procédure

A+
 

sarsargna

XLDnaute Nouveau
Re : Traduction d'une macro

Bonsoir,

Voir la traduction ci-dessous :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Procédure privée : Worksheet_SelectionChange => s’exécute lorsque l’on déplace la sélection. Le paramètre 'utilisé renvoie l’adresse de la sélection et s’appelle Target
Dim Plg As Range, F As Worksheet
'Déclaration de variables : PLg de type plage de cellules et F de type Feuille (onglet)
Application.ScreenUpdating = False
'Suspend le rafraîchissement d’écran, ce qui permet de gagner du temps.
With Me
'En utilisant la feuille actuelle (onglet actuel) désigné par Me
Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))
'On définit que la variable plage contient les cellules B2 à cellule correspondant à la dernière ligne de la feuille et 'colonne située juste à droite du 3° groupe de colonnes utilisé.
End With
'Fin d’utilisation de Me
If Not Intersect(Target, Plg) Is Nothing Then
'Si Target renvoie une cellule contenue dans la zone affectée à Plg
On Error Resume Next
'Gestion d’erreurs : En cas d’erreur, on reprend à l’instruction suivante
Sheets(Target.Value).Visible = Not Sheets(Target.Value).Visible
'Si la feuille (l’onglet) dont le nom est contenu dans la cellule sélectionnée au début de la macro est visible, alors 'on la masque. Si elle est masquée, on la rend visible.
Me.Range("$A$1").Select
'On sélectionne la cellule A1
End If
'Fi de la condition Si

If Target.Address = "$J$2" Then
'Si l’adresse de la cellule sélectionnée qu début de la macro est $I$2, alors on applique les instructions si dessous
For Each F In Worksheets
'Pour chaque feuille du fichier
If F.Name <> Me.Name Then F.Visible = False
'Si le nom de la feuille est différent du nom de la feuille sélectionnée alors on masque la feuille en question. 
Next F
'On passe à la feuille suivante
Me.Range("$A$1").Select
'On sélectionne la cellule $A$1
End If
'Fin de la condition Si
If Target.Address = "$J$4" Then
'Si l’adresse de la cellule sélectionnée qu début de la macro est $I$4, alors on applique les instructions si dessous
For Each F In Worksheets
'Pour chaque feuille du fichier
F.Visible = True
'On rend la feuille visible
Next F
'On passe à la feuille suivante
Me.Range("$A$1").Select
'On sélectionne la cellule $A$1
End If
'Fin de la condition Si
End Sub
'Fin de la procédure

A+

Merci pour la réponse !!!
Par contre j'ai compris qu'une partie......Le début je n'ai pas réussi à comprendre.

Quelqu'un peut il m'expliquer cette partie s'il vous plaît :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Plg As Range, F As Worksheet

Application.ScreenUpdating = False

With Me

Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))

End With

If Not Intersect(Target, Plg) Is Nothing Then

On Error Resume Next
 
Dernière édition:

grisan29

XLDnaute Accro
Re : Traduction d'une macro

bonjour sarsargna, fred0o et le forum

sarsargna ce que fred0o a traduit est on ne plus explicit, sauf que les lignes de traduction sont en dessous de celles a traduire

mais sert toi de ce qu'il t'a traduit
Code:
'Procédure privée : Worksheet_SelectionChange => s’exécute lorsque l’on déplace la sélection. Le paramètre 'utilisé renvoie l’adresse de la sélection et s’appelle Target
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Déclaration de variables : PLg de type plage de cellules et F de type Feuille (onglet)
Dim Plg As Range, F As Worksheet
'Suspend le rafraîchissement d’écran, ce qui permet de gagner du temps.
Application.ScreenUpdating = False
'En utilisant la feuille actuelle (onglet actuel) désigné par Me
With Me
'On définit que la variable plage contient les cellules B2 à cellule correspondant à la dernière ligne de la feuille et 'colonne située juste à droite du 3° groupe de colonnes utilisé.
Set Plg = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))' set plg prends la valeur qui suit = et partout dans le code
'Fin d’utilisation de Me
End With
'Si Target renvoie une cellule contenue dans la zone affectée à Plg
If Not Intersect(Target, Plg) Is Nothing Then
'Gestion d’erreurs : En cas d’erreur, on reprend à l’instruction suivante
On Error Resume Next

sert toi du bouton # pour mettre tes codes

Pascal
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso