× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 remplacer feuille par autre feuilleSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
vieuxmonsieur
  Posté le 12/10/2013 @ 12:21 
Aller en bas de la page 
Astucien

bonjour,

j'ai un classeur excel 2003 ayant pour nom "TOTO" et comportant 12 feuilles nommees.

je souhaiterai remplacer une feuille de ce classeur nommée "Var" par une feuille unique d'un autre classeur nommée également "Var"

si possible que le premier classeur soit ouvert ou ferme.

est-ce possible... ?

en vous remerciant pour vos connaissances.



Modifié par vieuxmonsieur le 12/10/2013 15:49
Publicité
ferrand
 Posté le 12/10/2013 à 13:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

A priori tu commences par supprimer la feuille que tu veux remplacer :

ThisWorkbook.Worksheets("Var").Delete

(ThisWorkbook si tu mets la macro dans "Toto"...)

Ensuite tu copies ta feuille dans "Toto" après l'avoir renommée si nécessaire :

With Workbooks("Var.xls")
.Worksheets(1).Name = "Var"
.Worksheets("Var").Copy ThisWorkbook.Worksheets("nomdelafeuilledevantlaquellesepositionneVar")
End With

(Si la feuille n'est pas copiée mais déplacée, remplacer Copy par Move)

Si le classeur Var n'est pas ouvert, la première ligne le concernant déclenchera une erreur 9.
Tu peux utiliser cette erreur pour ouvrir le classeur.

Avant d'appeler "Var", tu places une instruction de gestion d'erreur :

On Error GoTo ouvrirclasseur

Après tes instructions de copie, tu places l'étiquette ouvrirclasseur à laquelle la gestion d'erreur renvoie, en la faisant précéder d'une instruction Exit Sub (pour qu'en exécution normale la macro s'interrompe avant) et sous l'étiquette la commande d'ouverture suivie d'une instruction de retour à la ligne qui a déclenché l'erreur. Soit :

Exit Sub
ouvrirclasseur:
Workbooks.Open "cheminduclasseur" & "\Var.xls"
Resume

Si je n'ai rien oublié, ça doit fonctionner. Il faut évidemment être assuré de l'emplacement du classeur qui peut être ouvert ou fermé (si tu as possibilité d'autres erreurs, il faudra empêcher que le gestionnaire d'erreur continue d'être actif, ce qui te ferait tourner en "rond" jusqu'à saturation de l'appli, et mettre avant l'ouverture une instruction de désactivation du gestionnaire : On Error GoTo 0 ...)

NB-Ne pas oublier le deux-points (:) à la suite du nom de l'étiquette de branchement (indispensable pour l'interpréteur).



Modifié par ferrand le 12/10/2013 13:23
vieuxmonsieur
 Posté le 12/10/2013 à 15:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour ferrand,

Je te remercie de me repondre et des explications fournies.

Si j'ai bien compris ca devrait donner ce code, partant du principe que le classeur de destination est ferme.

Ce code étant place dans le nouveau classeur lancé par un clic sur un bouton

Sub RemplaceVar()
'Remplacer feuille Var (variables)
On Error GoTo ouvrirclasseur
Exit Sub
ouvrirclasseur:

Workbooks.Open "C:\GestActivités" & "\GestActivites.xls"
Resume
On Error GoTo 0

ThisWorkbook.Worksheets("Var").Delete
'Copies de la nouvelle feuille Var
With Workbooks("Var.xls")
.Worksheets(1).Name = "Var"
'(Nom de la feuille devant laquelle se positionne la feuille Var")
.Worksheets("Act").Copy ThisWorkbook.Worksheets
End With
End Sub

ferrand
 Posté le 12/10/2013 à 16:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Plutôt :

Sub RemplaceVar()
ThisWorkbook.Worksheets("Var").Delete
On Error GoTo ouvrirclasseur
With Workbooks("Var.xls")
.Worksheets(1).Name = "Var"
.Worksheets("Var").Copy ThisWorkbook.Worksheets("Act")
End With
Exit Sub
ouvrirclasseur:
On Error GoTo 0
Workbooks.Open "C:\GestActivités" & "\GestActivites.xls"
Resume
End Sub

vieuxmonsieur
 Posté le 12/10/2013 à 16:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je te remercie de tout coeur ferrand

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
23,99 €Jeu PC Fifa 20 à 23,99 €
Valable jusqu'au 10 Avril

Amazon fait une promotion sur le jeu PC Fifa 20 qui passe à 23,99 € au lieu de 49 €. Dès la commande passée, vous recevrez un email avec le code pour télécharger le jeu sur Origin.


> Voir l'offre
21,99 €Lot de 3 clés USB 3.0 Kingston DataTraveler 100 G3 32 Go à 21,99 €
Valable jusqu'au 12 Avril

Amazon vous propose actuellement la clé USB 3.0 Kingston DataTraveler 100 G3 32 Go à 5,75 €. Sa fermeture coulissante vous permettra de protéger le connecteur USB 3.0 (compatible USB 2.0).


> Voir l'offre
89,99 €Routeur Netgear R6700 NIGHTHAWK à 89,99 €
Valable jusqu'au 16 Avril

Amazon fait une promotion sur le routeur Netgear R6700 NIGHTHAWK qui passe à 89,99 € livré gratuitement. On le trouve ailleurs à partir de 119 €. Ce routeur vous permettra de profiter du WiFi jusqu'à 1750 Mbps. Son amplificateur intégré vous permettra t'étendre la couverture de votre réseau jusqu'à 140 m². Le routeur dispose également de 4 prises Gigabit Ethernet et d'un port USB 3.0 sur lequel vous pourrez brancher une imprimante, une clé USB ou un disque dur externe qui sera partagé sur votre réseau.


> Voir l'offre

Sujets relatifs
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
Garder la forme d'un texte répété dans une autre feuille
Copier plage de celules vers autre feuille sous condition
Copier tableaux vers autre feuille sous condition
Coller une image dans une autre feuille en VBA
Excel Tirer une donnée d'une autre feuille
Déplacer une feuille dans un autre classeur
validation de données liste sur une autre feuille
[excel 2007] macro pour aller sur autre feuille
résultat en temps réel d'une feuille à une autre
Plus de sujets relatifs à remplacer feuille par autre feuille
 > Tous les forums > Forum Bureautique