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

Instructions sur feuilles sélectionnées

11 réponses
Avatar
Péhemme
Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier (sélectionnée
suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel

10 réponses

1 2
Avatar
isabelle
bonjour Michel,

ajoute Sheets(Sh.name).Activate dans la parti 3

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Sheets(Sh.name).Activate
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh

isabelle

Le 2013-12-21 13:57, Péhemme a écrit :
Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier
(sélectionnée suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel

Avatar
Jacquouille
Accroche-toi, Michel.
Cela va aller.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Péhemme" a écrit dans le message de groupe de discussion :
l94ob3$hcp$

Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier (sélectionnée
suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel
Avatar
Péhemme
Stop !
Ne cherchez plus !
J'ai modifié comme suit et cela fonctionne...
Je tournais autour depuis un moment et voili, voilou :

Sub Test()
Dim Sh As Worksheet
Dim NouvelleAnnée
NouvelleAnnée = 2020
Dim maSelection

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
Set maSelection = ActiveWindow.SelectedSheets '<=
For Each Sh In maSelection
With Sh
.Rows("10:500").Delete
.Range("C4:U4,AA4:AI4").ClearContents
.Range("E1") = NouvelleAnnée
End With
Next Sh
End Sub

Merci à tout ceux qui étaient en train de chercher une solution.
Bien amicalement
et bonnes fêtes de fin d'année à Tous
(ici, en Provence, les autochtones disent : bon bout d'an !)
Michel

"Péhemme" a écrit dans le message de groupe de discussion :
l94ob3$hcp$

Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier (sélectionnée
suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel
Avatar
Péhemme
Désolé Isabelle, je n'avais pas vu ta réponse.
Je la teste également
Mille mercis et grosses bises
Michel


"isabelle" a écrit dans le message de groupe de discussion :
l94oof$hti$

bonjour Michel,

ajoute Sheets(Sh.name).Activate dans la parti 3

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Sheets(Sh.name).Activate
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh

isabelle

Le 2013-12-21 13:57, Péhemme a écrit :
Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier
(sélectionnée suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel

Avatar
Péhemme
Mon cher Jacquouille
C'est, en fait, parce que je m'accroche que j'ai des problèmes :-))
Bonne soirée
Michel


"Jacquouille" a écrit dans le message de groupe de discussion :
l94p54$jds$

Accroche-toi, Michel.
Cela va aller.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Péhemme" a écrit dans le message de groupe de discussion :
l94ob3$hcp$

Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier (sélectionnée
suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel
Avatar
Péhemme
Isabelle ?!
C'est magique, ta proposition fonctionne à merveille.
Encore merci.
Michel


"isabelle" a écrit dans le message de groupe de discussion :
l94oof$hti$

bonjour Michel,

ajoute Sheets(Sh.name).Activate dans la parti 3

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Sheets(Sh.name).Activate
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh

isabelle

Le 2013-12-21 13:57, Péhemme a écrit :
Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier
(sélectionnée suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de
plusieurs feuilles et d'appliquer les mêmes instructions sur lesdites
feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel

Avatar
Jacky
Hello Michel,

Ceci devrait être suffisant
'----------------
Sub Test()
Dim Sh As Worksheet
Dim NouvelleAnnée
NouvelleAnnée = 2016
For Each Sh In Sheets(Array("Janvier", "Février", "Mars", _
"Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX"))
Sh.Visible = True
Sh.Rows("10:500").Delete
Sh.Range("C4:U4,AA4:AI4").ClearContents
Sh.Range("E1") = NouvelleAnnée
Next
End Sub
'-----------------------

--
Salutations
JJ


"Péhemme" a écrit dans le message de news: l94ob3$hcp$
Bonsoir à Tous,

Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.
Les instructions du 3°) fonctionnent sur la feuille Janvier (sélectionnée suite à l'instruction du 2°)).
La boucle "tourne", mais les instructions ne sont pas appliquées.
Une instruction est mal libellée ?...
L'approche n'est pas la bonne ?...
Vous l'avez compris, j'ai un problème d'utilisation de la sélection de plusieurs feuilles et d'appliquer les
mêmes instructions sur lesdites feuilles sélectionnées.
J'ai essayé :
For Each Sh In Selection
sans succès, puis :
For Each Sh In ActiveWindow.SelectedSheets
pas mieux.

Sub Test()
Dim Sh
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select

'3°) Détruit les saisies de l'année terminée
For Each Sh In ActiveWindow.SelectedSheets 'Selection
Rows("10:500").Delete
Range("C4:U4,AA4:AI4").ClearContents
Range("E1") = NouvelleAnnée
Next Sh
End Sub

Merci d'avance de votre aide afin de me remettre sur la voie.
Bien amicalement
Michel

Avatar
MichD
| Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.

L'objet "Selection" représente une cellule où des plages de cellules d'une
feuille
particulière ou des objets tel qu'un graphe ou des shapes appartenant à une
feuille. Mais "Selection" ne peut pas représenter une feuille ou un ensemble
de feuilles. Aucune erreur n'est retournée, car il y a toujours un objet qui
est
sélectionné dans une feuille.

Quelques exemples de code :

'-----------------------------------------
Sub Test1()
Dim S As Object

'Ceci ne fonctionne pas
Worksheets(1).Select
Selection.Delete

'Ceci fonctionne bien
Worksheets("Feuil1").Shapes.Range(Array("Rectangle 1", "Rectangle
2")).Select
For Each S In Selection
'affiche le nom des objets (shapes)
MsgBox S.Name
Next
'Supprime les objets sélectionnés
Selection.Delete
End Sub
'-----------------------------------------


Ta macro originale aurait pu fonctionner, mais écrite comme ceci :
D'abord, sélectionnez les feuilles que tu veux
et dans un deuxième temps, tu peux utiliser l'objet "Selection" qui va
réunir la même plage de cellule dans plusieurs feuilles comme ceci :

'---------------------------------------
Sub Test()
Dim Sh As Worksheet
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select


'3°) Détruis les saisies de l'année terminée
Rows("10:500").Select
Selection.Delete
Range("C4:U4,AA4:AI4").Select
Selection.ClearContents
Range("E1").Select
Selection = NouvelleAnnée

End Sub
'---------------------------------------
Avatar
Péhemme
Merci Jacky, Merci Denis,
J'avais une question, j'ai 4 solutions : Formidable !

Un merci supplémentaire à Denis pour ce cours sur "Selection" qui me
confirme que "je n'étais pas loin", mais je n'aurais jamais pensé à cette
solution tout seul.

Un grand merci permanent à tous pour votre aide toujours présente.

Bien amicalement
Michel


"MichD" a écrit dans le message de groupe de discussion :
l96r4t$5qg$

| Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.

L'objet "Selection" représente une cellule où des plages de cellules d'une
feuille
particulière ou des objets tel qu'un graphe ou des shapes appartenant à une
feuille. Mais "Selection" ne peut pas représenter une feuille ou un ensemble
de feuilles. Aucune erreur n'est retournée, car il y a toujours un objet qui
est
sélectionné dans une feuille.

Quelques exemples de code :

'-----------------------------------------
Sub Test1()
Dim S As Object

'Ceci ne fonctionne pas
Worksheets(1).Select
Selection.Delete

'Ceci fonctionne bien
Worksheets("Feuil1").Shapes.Range(Array("Rectangle 1", "Rectangle
2")).Select
For Each S In Selection
'affiche le nom des objets (shapes)
MsgBox S.Name
Next
'Supprime les objets sélectionnés
Selection.Delete
End Sub
'-----------------------------------------


Ta macro originale aurait pu fonctionner, mais écrite comme ceci :
D'abord, sélectionnez les feuilles que tu veux
et dans un deuxième temps, tu peux utiliser l'objet "Selection" qui va
réunir la même plage de cellule dans plusieurs feuilles comme ceci :

'---------------------------------------
Sub Test()
Dim Sh As Worksheet
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select


'3°) Détruis les saisies de l'année terminée
Rows("10:500").Select
Selection.Delete
Range("C4:U4,AA4:AI4").Select
Selection.ClearContents
Range("E1").Select
Selection = NouvelleAnnée

End Sub
'---------------------------------------
Avatar
Péhemme
Jacky et Denis,
Pardon de revenir, mais pour chacun de vous : impressionnant de rapidité.
Bonne soirée
Michel




"MichD" a écrit dans le message de groupe de discussion :
l96r4t$5qg$

| Je ne comprends pas pourquoi ma macro "ne rentre pas" dans la boucle.

L'objet "Selection" représente une cellule où des plages de cellules d'une
feuille
particulière ou des objets tel qu'un graphe ou des shapes appartenant à une
feuille. Mais "Selection" ne peut pas représenter une feuille ou un ensemble
de feuilles. Aucune erreur n'est retournée, car il y a toujours un objet qui
est
sélectionné dans une feuille.

Quelques exemples de code :

'-----------------------------------------
Sub Test1()
Dim S As Object

'Ceci ne fonctionne pas
Worksheets(1).Select
Selection.Delete

'Ceci fonctionne bien
Worksheets("Feuil1").Shapes.Range(Array("Rectangle 1", "Rectangle
2")).Select
For Each S In Selection
'affiche le nom des objets (shapes)
MsgBox S.Name
Next
'Supprime les objets sélectionnés
Selection.Delete
End Sub
'-----------------------------------------


Ta macro originale aurait pu fonctionner, mais écrite comme ceci :
D'abord, sélectionnez les feuilles que tu veux
et dans un deuxième temps, tu peux utiliser l'objet "Selection" qui va
réunir la même plage de cellule dans plusieurs feuilles comme ceci :

'---------------------------------------
Sub Test()
Dim Sh As Worksheet
Dim NouvelleAnnée
NouvelleAnnée = 2016

'1°) Ouvre toutes les pages
For Each Sh In ActiveWorkbook.Sheets
Sh.Visible = True
Next

'2°) Selectionne les pages à modifier
Sheets(Array("Janvier", "Février", "Mars", "Avril", "Mai", _
"Juin", "Juillet", "Août", "Septembre", "Octobre", _
"Novembre", "Décembre", "TOTAUX")).Select


'3°) Détruis les saisies de l'année terminée
Rows("10:500").Select
Selection.Delete
Range("C4:U4,AA4:AI4").Select
Selection.ClearContents
Range("E1").Select
Selection = NouvelleAnnée

End Sub
'---------------------------------------
1 2