copier onglet

sancerre75

XLDnaute Nouveau
je souhaiterais copier un onglet dans un autre fichier excel mais je n'arrive pas à le faire. En fait mon fichier source est plein de formule et ce qui m'intéresse ce n'est que les données et le format. Quand je recopie mon onglet, les liaisons des formules sont plus bonnes et des ###### apparaissent sur toutes les lignes. Quelqu'un sait comment faire pour copier un onglet dans ma situation. Merci par avance.
 

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Bonjour,

Associe la copie de ton onglet à un copier/collage spécial, peut être (faute de mieux).

Comment procèdes tu pour ta copie ?

- clic droit sur onglet à copier
- cocher "copie"
- choisir le classeur (nouveau, celui ci ou un autre que tu auras pris soin d'ouvrir avant)
- choisir la position (avant telle feuille, après telle feuille)
- ok

Je viens d'essayer, ca copie bien tout... avec liaisons si formules. Donc ensuite tu sélectionnes tout avant de fermer le classeur sources (tu te mets à l'intersection lignes et colonnes) et tu fais édition copier/collage spécial valeurs... et ca devrait le faire. SURTOUT, garde ouvert le classeur source avant la fin du collage spécial valeurs.

Si tu dois le faire souvent, il faudrait automatiser par une petite macro (enregistreur de macro suffisant pour ce genre de chose).
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Bonjour Minick, le fil,

Décidément, on se retrouve... Attention dans ta procédure décrite, tu dis : déplace ton onglet, je crois que sancerre veut COPIER, pas déplacer... Faut penser à cocher "copie" quand on fait clic droit sur onglet et déplacer/copier.

Pour la macro de copier/collage special valeurs (si nécessaire d'automatiser) :

Sub CopieValeurs()
'
' CopieValeurs Macro

'
Range("A1:AA43").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("FEUILLE").Select
Sheets("FEUILLE").Copy
Application.WindowState = xlMinimized

End Sub

A coller dans un module. Pour cela, faire ALT/F11, l'éditeur de VBA (macros) s'ouvre. Tu fais insertion module (vérifie que tu es bien à gauche dans TON CLASSEUR), et tu copies colles ce code en changeant les plages, et nom de feuilles.
Pour exécuter la macro, soit tu cliques dans la barre d'outils macros sur la petite flèche (exécuter) ; si la barre outils est pas présente : affichage/barres outils/macros.

Soit tu fais un bouton dans ta feuille... on t'expliquera... pour l'instant on attend ton besoin.

Essaie.

Ci-joint un exemple avec un bouton "copier feuilles avec valeur".
 

Pièces jointes

  • sancerre.xls
    23.5 KB · Affichages: 121
  • sancerre.xls
    23.5 KB · Affichages: 120
  • sancerre.xls
    23.5 KB · Affichages: 117
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Dans le fichier SOURCE... Regarde mon exemple de classeur source. Ouvre le et fais ALT/F11, à gauche, dans l'éditeur vba (macros) qui s'ouvre, tu as plein de choses, clique sur le classeur "sancerre" et tu verras module 1 contenant la macro exemple.

Le bouton pointe vers cette macro, clique droit dessus, tu verras.

Et aussi souvent que tu feras, dans CE classeur source, exécuter la macro "copier valeurs" ou bien aussi souvent que tu cliqueras sur le gros bouton gris "copier feuille ailleurs" (qu'on peut nommer autrement bien sûr), ca dupliquera à l'identique (formats, valeurs) ta feuille dans un nouveau classeur qu'il t'appartiendra alors de nommer pour le garder (plus aucune liaison dedans en revanche, on est bien d'accord : plutot une sorte de sauvegarde à un moment donné).

Copie écran : C'est à cette macro copievaleurs qu'est associé le bouton gris. Adapter plages et nom feuille.

Capture copie.jpg
 

Pièces jointes

  • Capture copie.jpg
    Capture copie.jpg
    43.6 KB · Affichages: 250
  • Capture copie.jpg
    Capture copie.jpg
    43.6 KB · Affichages: 246
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Sancerre,

Deux solutions : soit je réexplique mieux, soit si tu as msn, je t'explique sur msn.

1. explication meilleure (j'espère)

Dans ton classeur SOURCE (duquel tu veux copier "souvent" car si une seule fois, pas besoin de macro, une feuille ailleurs, si j'ai bien compris), tu appuies sur ALT et F11 en même temps.

Une fois ca fait, ca doit t'ouvrir une fenêtre de l'éditeur vba (macros) comme ma capture écran.

A gauche tu as une liste de classeurs ouverts... tu cliques sur ton classeur (ou mon exemple "sancerre" pour voir).

En haut tu fais Insertion/module. Tu y copies / colles le code que j'ai mis ci-dessous (ou pris dans mon classeur).

Tu changes la plage de référence : moi j'ai mis A1 à B40, tu mets toute ta plage.

Tu changes le nom de ta feuille : moi j'ai mis Feuil1 ; aux 2 endroits attention.

Tu fermes l'éditeur VBA avec la croix à droite en haut.

Tu reviens donc dans le classeur.

Tu fais Outils/macros/ tu cherches la macro "copievaleur", tu fais exécuter...

Si ca te convient, si ca te plait... on ira plus loin (on t'apprendra à mettre le bouton "gris" plus facile d'utilisation que outils/macros/exécuter).

Tu reviens nous dire ?

2. Sur msn, envoie moi ton adresse par message privé sur ce forum.
 

Minick

XLDnaute Impliqué
Re : copier onglet

Re,

Sur l'exemple de Brigitte avec copie de la feuille en premier puis copier/collage valeur en second
Code:
Sub CopieValeurs()
    'Copie de la feuille source
    Sheets("Feuil1").Copy
    
    'Copie de l'ensemble des cellules de la feuille destination
    Cells.Copy
    'Collage en valeur sur elle meme ( en valeurs )
    Cells.PasteSpecial Paste:=xlPasteValues

    'Annulation du copier
    Application.CutCopyMode = False
End Sub

++
Minick
 

Discussions similaires

Réponses
4
Affichages
301

Statistiques des forums

Discussions
312 182
Messages
2 086 003
Membres
103 084
dernier inscrit
Hervé30120