Copie d'une feuille vers une autre...

Signaler
Messages postés
2
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
19 septembre 2006
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
bonjour,
apres avoir recuperer un fichier excel, j'ai commencé a modifier la macro.
le principe, j'ai une feuille du classeur avec des données qui sont recupéré sur les autres feuilles, avec une macro VBA, j'enregistre cette feuille dans un autre classeur excel avec un nom qui change a chaque fois.
mon souci est que lorsque j'ouvre mon nouveau fichier excel une boite de dialogue me dit:
"le classeur que vous avez ouvert comporte des liens vers les un autre classeur"

en effet mes formules d'appels se retrouvent elles aussi dans ce nouveau fichier.

je voudrais en fait faire une copie de cette feuille complete mais sans les formules, juste avec mise en page, image et valeurs dans les cases...

je vous donne la simplissime formule utilisé pour le moment faute de mieux:

Feuil4.Copy
ActiveWorkbook.SaveAs Filename:="d:\travail\devis" & nodev & ".xls"
ActiveWorkbook.Close

cette action fonctionne mais copie aussi les formules...

merci de votre aide

3 réponses

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

As-tu regardé du côté des fonctions intégrées dans Excel ?

IL en existe une très pratique pour la copie du contenu d'une cellule sans sa formule sous jacente.
En clair, si tu avais dans une cellule :
=somme(A1:B1)
et que la cellule affiche donc un résultat (disons, 9 pour l'exemple)
alors on peut faire une copie de la valeur de la cellule (9) vers une autre (ou vers un autre classeur...)

Ceci se réalise grâce à coller spécial.Différentes possibilités sont offertes, dont le coller "Valeur" (donc sans formule)

JE pense que cela est une piste à explorer...

Amicalement,
Us.
Messages postés
2
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
19 septembre 2006

bonjour,

suite....

pour continuer, je ne copie pas une cellule mais une page complete d'un classeur.
les fonctions copy et paste que j'ai trouvé fonctionne cellule/cellule.
moi je ve garder la page et les valeur de cette page sans les appels aux autres feuilles du classeur 1

je m'explique:
soit 1 classeur avec 6 feuilles, la feuille 1 met en forme des données recuperer dans les 5 autres feuilles pour faire un devis
qd j'appui sur un bouton je veut que la feuille 1 soit enregistrer dans un nouveau classeur contenant la mise en page et les valeurs de la feuille1. le classeur est refermé automatiquement.

Feuil4.Copy
ActiveWorkbook.SaveAs Filename:="d:\travail\devis" & nodev & ".xls"
ActiveWorkbook.Close

le code utilisé focntionne mais copy les formules de la feuille 1
j'ai essayé les pastespecial, mais ca fonctionne pas ...

merci de votre aide
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

JE me permet d'insister. La solution que je proposai de regarder est (me semble-t-il maintenant) tout à fait adapté.

Déjà, la copie ne fonctionne pas seulement cellule par cellule, mais plage par plage (comme toutes les fonctions d'Excel), et donc, pour une feuille entière.

Pour t'en convaincre, il suffit :
- de mettre en surbrillance une plage,
- faire Edition>Copier
- Puis Edition>Copie spéciale et choisir l'option valeur.

Une chose très pratique, c'est de mettre un bouton raccourcis de cette fonction, en allant dans Affichage personnalisé. (L'icône ressemble à un dossier avec un indice "12" dessus). Je personnalise toujours Excel avec cette fonction (trop pratique)...

=

Passons, ce point.


En terme de code VBA, ce qui réalise cela automatiquement est programmable ainsi :


Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


et on peux rajouter, la déseelection avec :

ActiveCell.Select
Application.CutCopyMode = False


Voilà, après exécution, il restera que les valeurs à la place des formules.

Ensuite, le reste du code que tu proposes...


Amicalement,
Us.