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

Macro sous Excel 5 (copie d'onglet)

6 réponses
Avatar
DragonFly
Je cherche =E0 copier un onglet =E0 l'int=E9rieur d'un document=20
Excel; l'=E9quivalent de l'option : D=E9placer ou copier /=20
D=E9placer les feuilles s=E9lectionn=E9es / (en dernier)
En macro Excel, comment cela se traduit-il ?
Adresse pour toutes aides : d.mer@voila.fr
Merci d'avance ;-)

6 réponses

Avatar
boblebob
salut,
pour Excel5, comme ça date un peu (au fait tu sais que De Gaulle est mort
!!! :=)) je ne suis pas sûr du résultat mais pour les autres versions c'est
comme cela :

Sub test()
'compter le nombre de feuille
rep = Sheets.Count
'déplacer la Feuil1 après la dernière feuille

Sheets("feuil1").Move after:=Sheets(rep)

End Sub

si jamais cela peut t'aider
--

a+

(enlever nosp-00-)
"DragonFly" a écrit dans le message de
news:1427801c3f9f6$60e8dad0$
Je cherche à copier un onglet à l'intérieur d'un document
Excel; l'équivalent de l'option : Déplacer ou copier /
Déplacer les feuilles sélectionnées / (en dernier)
En macro Excel, comment cela se traduit-il ?
Adresse pour toutes aides :
Merci d'avance ;-)
Avatar
DragonFly
Je cherche une solution en Macro EXCEL et pas VB... Hélas !
Du style " =COPIER.ONGLET(paramètres...) "
Quant à De Gaule, je sais bien qu'il est mort, je joue aux
cartes tous les soirs avec lui...
Pierre TOMBALE
Avatar
Alain CROS
Bonjour.

CopierFeuil2etRenommer
=COPIE.CLASSEUR("Feuil2";LIRE.CLASSEUR(16))
=NOMMER.CLASSEUR(LIRE.CLASSEUR(38);"MaNouvelleFeuille")
=RETOUR()

Alain CROS.

"DragonFly" a écrit dans le message de news: 151a801c3fa0f$ea2bd360$
Je cherche une solution en Macro EXCEL et pas VB... Hélas !
Du style " =COPIER.ONGLET(paramètres...) "
Quant à De Gaule, je sais bien qu'il est mort, je joue aux
cartes tous les soirs avec lui...
Pierre TOMBALE
Avatar
Michel Gaboly
Bonjour Alain et DrtagonFly,

Alain, ton code crée, en dernière position dans le même classeur,
une copie de la feuille indiquée et donne le nom "MaNouvelleFeuille"
à la copie.

Si j'ai bien compris, ce n'est pas exactement, ce que voulait DragonFly.

Selon moi, il voulait déplacer la feuille indiquée en dernière position,
et non pas y placer une copie.


Je ne savais pas faire, mais tu m'as mis sur la voi" ;-))))

Il faut simplement remplacer

COPIE.CLASSEUR() par DEPLACEMENT.CLASSEUR() :

ÞPLACEMENT.CLASSEUR("Az";LIRE.CLASSEUR(16))


Dans les 2 cas, il existe un 3ème argument, facultatif, pour indiquer la
position.

Le nombre de feuilles du classeur est obtenu avec LIRE.CLASSEUR(4),
mais la valeur par défaut est la dernière position, donc en l'occurrence,
cet argument n'est pas nécessaire.

LIRE.CLASSEUR(16) donne le nom du classeur actif, que l'on peut
également obtenir avec LIRE.DOCUMENT(68) ou LIRE.DOCUMENT(88).



Il est possible de déplacer + d'une feuille : voici comment placer
l'ensemble "Feuil" et "Feuil2", juste avant la dernière feuille :

Déplacement
ÞPLACEMENT.CLASSEUR({"Feuil1";"Feuil2"};LIRE.CLASSEUR(16);LIRE.CLASSEUR(4) - 2)
=RETOUR()

Danc cette variante,

Déplacement
=POSER.NOM("Mat";{"Feuil1";"Feuil2"})
ÞPLACEMENT.CLASSEUR(Mat;LIRE.CLASSEUR(16);LIRE.CLASSEUR(4) - COLONNES(Mat))
=RETOUR()

la seconde instruction (avec DEPLACEMENT.CLASSEUR()) doit être
validée en matricielle, sinon seule le premier élément de la matrice "Mat" est déplacé.



Bonjour.

CopierFeuil2etRenommer
=COPIE.CLASSEUR("Feuil2";LIRE.CLASSEUR(16))
=NOMMER.CLASSEUR(LIRE.CLASSEUR(38);"MaNouvelleFeuille")
=RETOUR()

Alain CROS.

"DragonFly" a écrit dans le message de news: 151a801c3fa0f$ea2bd360$
Je cherche une solution en Macro EXCEL et pas VB... Hélas !
Du style " =COPIER.ONGLET(paramètres...) "
Quant à De Gaule, je sais bien qu'il est mort, je joue aux
cartes tous les soirs avec lui...
Pierre TOMBALE


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
DragonFly
Super, exactement ce qu'il me fallait. Dans les doc. Excel
4 que j'ai, LIRE.CLASSEUR(16) et (38) n'existe pas. Dur de
les inventer.
Encore merci. DragonFly
Avatar
Michel Gaboly
Re,

Pour savoir ce que renvoient les arguments de LIRE.CLASSEUR() ou
d'une autre fonction LIRE.xxx, voici une méthode simple :

Dans une feuille macro, entre en ligne 1 :

=LIRE.CLASSEUR(LIGNE())

puis fais un recopier vers le bas sur 100 lignes (ou +). Execute la
macro à partir de la ligne 1 puis affiche les valeurs au lieu des formules.


Super, exactement ce qu'il me fallait. Dans les doc. Excel
4 que j'ai, LIRE.CLASSEUR(16) et (38) n'existe pas. Dur de
les inventer.
Encore merci. DragonFly


--
Cordialement,

Michel Gaboly
http://www.gaboly.com