(vba) sélectionner plusieurs feuilles

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4804441
Bonsoir,

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

JB
On 15 août, 22:05, "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" 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


j-pascal
Le #4804431
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"
Bonsoir,

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

JB
On 15 août, 22:05, "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


JB
Le #4804411
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"
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


j-pascal
Le #4804381
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"
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"
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


JB
Le #4804351
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"
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"
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"


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 -



j-pascal
Le #4804261
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"
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"
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"


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 -



Publicité
Poster une réponse
Anonyme