Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) sélectionner plusieurs feuilles

6 réponses
Avatar
j-pascal
Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fév 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pour que la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP

6 réponses

Avatar
JB
Bonsoir,

Sheets(2).Select
For i = 3 To Sheets.Count
Sheets(i).Select False
Next

JB
On 15 août, 22:05, "j-pascal" wrote:
Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fé v 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pou r que la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP


Avatar
j-pascal
Bonsoir,

Pb, les mois vont de Feuil1 à Feuil12, mais j'ai aussi d'autres feuilles de
Feuil13 à Feuil16 !

@+ ?

JP

(J'imagine que le fait qu'une ou plusieurs feuilles soient masquée(s) ne
change rien ?)

"JB" a écrit dans le message de news:

Bonsoir,

Sheets(2).Select
For i = 3 To Sheets.Count
Sheets(i).Select False
Next

JB
On 15 août, 22:05, "j-pascal" wrote:
Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fév 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pour que
la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP


Avatar
JB
On ne peut pas sélectionner des feuilles masquées.

Application.DisplayAlerts = False
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next

JB


On 15 août, 22:05, "j-pascal" wrote:
Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fé v 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pou r que la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP


Avatar
j-pascal
Re,

Je vais poser une question bête, mais :
Dans l'ordre d'affichage de mon classeur (onglets) j'ai : 3 feuilles + 1
feuille masquée + 12 feuilles (12 mois)
Dans Microsoft Excel Objets, j'ai Feuil1 (jan 09), Feuil10 (Oct 09) ...
Feuil2 (Févr 09), etc.
Et pourtant, si je lance la macro : Sheets(16)select, cela sélectionne Déc
09, alors qu'elle est nommée Feuil 12 dans Microsoft Excel Objets !
Le nom de la feuille correspond donc à l'ordres des onglets ??
Si l'utilisateur déplace les onglets, la sélection est donc erronée !!

Pour sélectionner les mois, j'ai dû modifier comme suit :


Sub sélectMois()
Application.DisplayAlerts = False
Sheets(16).Select
For i = Sheets.Count To 4 Step -1

Sheets(i).Select False
Next
End Sub

Je ne comprends pas le False de Sheet(i).select False !

Cela sélectionne bien mes feuilles (mois) mais ça finit par un bug !

Une fois sélectionnées, je ne veux pas ajouter "delete" (je lancerai une
procédure pour effacer certaines zones nommées).

@+ ?

JP


"JB" a écrit dans le message de news:

On ne peut pas sélectionner des feuilles masquées.

Application.DisplayAlerts = False
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next

JB


On 15 août, 22:05, "j-pascal" wrote:
Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fév 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pour que
la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP


Avatar
JB
Sheets(i).Select False:
Le false permet de conserver la sélection en cours

Pour les suppressions d'onglets:
-on peut protéger le classeur pour empêcher les déplacements.
-on peut positionner les feuilles qui ont pu être déplacées.

JB

On 15 août, 23:21, "j-pascal" wrote:
Re,

Je vais poser une question bête, mais :
Dans l'ordre d'affichage de mon classeur (onglets) j'ai : 3 feuilles + 1
feuille masquée + 12 feuilles (12 mois)
Dans Microsoft Excel Objets, j'ai Feuil1 (jan 09), Feuil10 (Oct 09) ...
Feuil2 (Févr 09), etc.
Et pourtant, si je lance la macro : Sheets(16)select, cela sélectionne Déc
09, alors qu'elle est nommée Feuil 12 dans Microsoft Excel Objets !
Le nom de la feuille correspond donc à l'ordres des onglets ??
Si l'utilisateur déplace les onglets, la sélection est donc erronée !!

Pour sélectionner les mois, j'ai dû modifier comme suit :

Sub sélectMois()
Application.DisplayAlerts = False
Sheets(16).Select
For i = Sheets.Count To 4 Step -1

Sheets(i).Select False
Next
End Sub

Je ne comprends pas le False de Sheet(i).select False !

Cela sélectionne bien mes feuilles (mois) mais ça finit par un bug !

Une fois sélectionnées, je ne veux pas ajouter "delete" (je lancerai une
procédure pour effacer certaines zones nommées).

@+ ?

JP

"JB" a écrit dans le message de news:

On ne peut pas sélectionner des feuilles masquées.

Application.DisplayAlerts = False
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next

JB

On 15 août, 22:05, "j-pascal" wrote:



Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "f év 08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07", e tc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" p our que
la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
j-pascal
Bonjour,

Sheets(i).Select False:
Le false permet de conserver la sélection en cours

Ok,
Donc pas de rapport avec mon erreur d'exécution 1004, "la méthode select de
la classe worksheet à échoué" !
Je pense que c'est donc un pb lié au UserInterfaceOnly ... Je verrai ça ce
soir ...
'---------------------
Sub sélectMois()
Application.DisplayAlerts = False
Sheets(16).Select
For i = Sheets.Count To 4 Step -1
Sheets(i).Select False
Next
End Sub
'---------------------

Pour les suppressions d'onglets:
-on peut protéger le classeur pour empêcher les déplacements.

Pas intéressant dans la cas présent car l'utilisateur devrait déprotéger le
classeur pour l'utiliser !

-on peut positionner les feuilles qui ont pu être déplacées.
?? Je reste sur ma faim ;-)

@+ ?

JP

JB

On 15 août, 23:21, "j-pascal" wrote:
Re,

Je vais poser une question bête, mais :
Dans l'ordre d'affichage de mon classeur (onglets) j'ai : 3 feuilles + 1
feuille masquée + 12 feuilles (12 mois)
Dans Microsoft Excel Objets, j'ai Feuil1 (jan 09), Feuil10 (Oct 09) ...
Feuil2 (Févr 09), etc.
Et pourtant, si je lance la macro : Sheets(16)select, cela sélectionne Déc
09, alors qu'elle est nommée Feuil 12 dans Microsoft Excel Objets !
Le nom de la feuille correspond donc à l'ordres des onglets ??
Si l'utilisateur déplace les onglets, la sélection est donc erronée !!

Pour sélectionner les mois, j'ai dû modifier comme suit :

Sub sélectMois()
Application.DisplayAlerts = False
Sheets(16).Select
For i = Sheets.Count To 4 Step -1

Sheets(i).Select False
Next
End Sub

Je ne comprends pas le False de Sheet(i).select False !

Cela sélectionne bien mes feuilles (mois) mais ça finit par un bug !

Une fois sélectionnées, je ne veux pas ajouter "delete" (je lancerai une
procédure pour effacer certaines zones nommées).

@+ ?

JP

"JB" a écrit dans le message de news:

On ne peut pas sélectionner des feuilles masquées.

Application.DisplayAlerts = False
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next

JB

On 15 août, 22:05, "j-pascal" wrote:



Bonjour,

J'ai 12 feuilles, nommées "jan 07", "fév 07" ...
Par une macro, ces feuilles peuvent être renommées en "jan 08", "fév
08",
etc

J'ai besoin de les sélectionner ensemble (pour les effacer ...).

Si je fait un enregistrement automatique, j'ai Sheets(Array("jan 07",
etc)

Je pensais donc qu'il était préférable de garder le nom "Feuil" pour que
la
macro ne soit pas sensible à un nom provisoire !

Et pourtant, si je fais ce qui suit, j'ai un msg d'erreur !

Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5", "Feuil6",
"Feuil7", "Feuil8", "Feuil9", "Feuil10", "Feuil11", "Feuil12")).Select

Merci d'avance pour vos lumières ;-)

--
Cordialement @+
JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -