VBA - focus en A1 sans selectionner la feuille

Le
twinley
Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet actif est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment positionner le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de la
feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter le
focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Joël GARBE
Le #1915754
Bonjour Twinley ;-)

AMHA la vraie question à se poser et :

pourquoi vouloir positionner le "Focus" sur A1 de chaque feuille ?

Si c'est pour faire propre lorsque l'utilisateur se positionne sue la
feuille, il est toujours possible d'opter pour la privée :

Private Sub Worksheet_Activate()
range("A1").Select
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" uAf%



Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet actif
est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le
focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment positionner
le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de la
feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter le
focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley




twinley
Le #1915747
Bonjour Joël,

C'est la bonne question et la bonne réponse.
C'est pour faire propre.
Pour faire propre à la création de la feuille, mais pas à l'utilisation.
Cela peut agacer, alors qu'on a son focus à la bonne place en feuille2,
qu'on va voir une donnée en feuille3, et quand on revient en feuille2, le
focus a giclé en A1 et il faut rechercher la case ou on bossait.

Peut on mettre deux events dans un même module de feuille ? Je n'avais même
pas pensé à ta solution à cause de cette ignorance sur une double sub event.
--
à+twinley
"Joël GARBE" news:41a8ac43$0$30433$
Bonjour Twinley ;-)

AMHA la vraie question à se poser et :

pourquoi vouloir positionner le "Focus" sur A1 de chaque feuille ?

Si c'est pour faire propre lorsque l'utilisateur se positionne sue la
feuille, il est toujours possible d'opter pour la privée :

Private Sub Worksheet_Activate()
range("A1").Select
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" uAf%



Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet actif
est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le
focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment
positionner


le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de la
feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter le
focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley








Joël GARBE
Le #1915745
Pour compléter ma précédente réponse, s'il est important de n'actier la
cellule A1 que lors de la procédure en cours, il faut actier les feuilles...
je te propose donc :
l'utilisateur n'y voit que du feu !!!!

Sub ActiverA1()
Application.ScreenUpdating = False
Dim oSheet As Worksheet
For Each oSheet In Worksheets
If oSheet.Name <> "Feuil1" Then
oSheet.Activate
Range(Range("A1"), Range("A1").SpecialCells(xlCellTypeLastCell)).Clear
Range("A1").Select
End If
Next
Worksheets("Feuil1").Activate
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Joël GARBE" 41a8ac43$0$30433$
Bonjour Twinley ;-)

AMHA la vraie question à se poser et :

pourquoi vouloir positionner le "Focus" sur A1 de chaque feuille ?

Si c'est pour faire propre lorsque l'utilisateur se positionne sue la
feuille, il est toujours possible d'opter pour la privée :

Private Sub Worksheet_Activate()
range("A1").Select
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" uAf%



Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet actif
est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le
focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment positionner
le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de la
feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter le
focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley








twinley
Le #1915742
Je n'ai qu'un mot : superbe

C'est même mieux que je n'espérais.
ClearContents supprimait les volets figés, ton code non. Cela offre une
variante supplémentaire.
C'est propre tous les focus sont en A1 et on reste en feuille1.

Merci beaucoup
--
à+twinley
"Joël GARBE" news:41a8b0e5$0$17367$
Pour compléter ma précédente réponse, s'il est important de n'actier la
cellule A1 que lors de la procédure en cours, il faut actier les
feuilles...

je te propose donc :
l'utilisateur n'y voit que du feu !!!!

Sub ActiverA1()
Application.ScreenUpdating = False
Dim oSheet As Worksheet
For Each oSheet In Worksheets
If oSheet.Name <> "Feuil1" Then
oSheet.Activate
Range(Range("A1"), Range("A1").SpecialCells(xlCellTypeLastCell)).Clear
Range("A1").Select
End If
Next
Worksheets("Feuil1").Activate
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Joël GARBE" 41a8ac43$0$30433$
Bonjour Twinley ;-)

AMHA la vraie question à se poser et :

pourquoi vouloir positionner le "Focus" sur A1 de chaque feuille ?

Si c'est pour faire propre lorsque l'utilisateur se positionne sue la
feuille, il est toujours possible d'opter pour la privée :

Private Sub Worksheet_Activate()
range("A1").Select
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" uAf%



Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet actif
est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le
focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment
positionner



le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de
la



feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter
le



focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley












Joël GARBE
Le #1915739
Ce fut un plaisir ;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" %
Je n'ai qu'un mot : superbe

C'est même mieux que je n'espérais.
ClearContents supprimait les volets figés, ton code non. Cela offre une
variante supplémentaire.
C'est propre tous les focus sont en A1 et on reste en feuille1.

Merci beaucoup
--
à+twinley
"Joël GARBE" news:41a8b0e5$0$17367$
Pour compléter ma précédente réponse, s'il est important de n'actier la
cellule A1 que lors de la procédure en cours, il faut actier les
feuilles...

je te propose donc :
l'utilisateur n'y voit que du feu !!!!

Sub ActiverA1()
Application.ScreenUpdating = False
Dim oSheet As Worksheet
For Each oSheet In Worksheets
If oSheet.Name <> "Feuil1" Then
oSheet.Activate
Range(Range("A1"),
Range("A1").SpecialCells(xlCellTypeLastCell)).Clear
Range("A1").Select
End If
Next
Worksheets("Feuil1").Activate
End Sub


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Joël GARBE" 41a8ac43$0$30433$
Bonjour Twinley ;-)

AMHA la vraie question à se poser et :

pourquoi vouloir positionner le "Focus" sur A1 de chaque feuille ?

Si c'est pour faire propre lorsque l'utilisateur se positionne sue la
feuille, il est toujours possible d'opter pour la privée :

Private Sub Worksheet_Activate()
range("A1").Select
End Sub

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"twinley" uAf%



Bonjour à tous,

J'ai une boucle qui balaye les feuilles 2 à 14 alors que l'onglet
actif
est
la feuille1.
Je vide toutes les cellules de chaque feuille puis je veux envoyer le
focus
en A1 sur chaque feuille.

Or je sais le faire en sélectionnant la feuille, mais comment
positionner



le
focus en A1 sur chaque feuille à chaque tour de boucle sans bouger de
la



feuille1 ?
Par extension, en étant sur n'importe quelle feuille, comment piloter
le



focus sur A1 dans les autres feuilles ?

Sheets(I).Range("A1").Select ne fonctionne pas si la feuille n'est pas
active.


For I = 2 To 14
Sheets(I).Cells.ClearContents
Sheets(I).Range("A1").Select
Next I

Merci pour votre aide
à+twinley
















Poster une réponse
Anonyme