Un autre problème de copie dans Excel:
Comment puis-je copier une feuille de travail de WorkbookA.xlsx dans WorkbookB.xlsx sans que la feuille de travail copiée fasse toujours référence à WorkbookA.xlsx, par exemple, la formule =B!23
devient =[WorkbookA.xlsx]!B!23
lors de la copie.
Je veux conserver des références de cellules "relatives" au lieu de références de cellules "absolues" (j'inventerai cette terminologie dans le monde Excel si elle n'existe pas encore).
Une autre alternative possible pour laquelle je ne parviens pas à le faire fonctionner est la possibilité de coller uniquement les "valeurs" de cellule. Excel considère les "valeurs" comme des valeurs calculées plutôt que comme les formules réelles de la cellule. Si je choisis la formule de collage, elle donne toujours des références absolues.
Pour en savoir plus sur les raisons pour lesquelles j'ai besoin de cela: J'ai un xlsx de production utilisé pour les opérations quotidiennes. Nous devons constamment apporter des "mises à niveau" à ce xlsx afin qu'une personne puisse créer une copie et ses modifications pour une seule feuille. Parallèlement, une autre personne peut également apporter des modifications à une autre feuille. Étant donné que ces feuilles n'ont pas de cellules dépendantes sur d'autres feuilles , comme un rapport de synthèse, il est souhaitable que nous copions et fusionnions simplement les feuilles dans le xlsx d'origine. Mais le référencement "absolu" donne beaucoup de problèmes.
select all - copy - paste special - values
pour n’avoir que des valeurs. Si vous voulez tout faire pendant la copie plutôt que de vous fier à l'utilisateur final pour exécuter ces étapes, eh bien, j'y ai travaillé. Dites-nous exactement comment vous voulez que ce soit en termes de WorkbookA (ou 1) et WBB (2) et les feuilles #Réponses:
Essayez d’utiliser Ctrl+ ~pour afficher les formules. Puis utilisez Ctrl+ Apour tout sélectionner, copiez-le puis collez-le dans le bloc-notes.
Enfin, copiez-le dans le bloc-notes et collez-le dans votre autre classeur.
la source
J'ai souvent trouvé qu'il était plus facile de faire ce qui suit:
[WorkbookA.xlsx]!
la source
La réponse non signée juste en dessous de celle-ci est celle qui a fonctionné pour moi, avec une très légère variation.
Créez et enregistrez une feuille de calcul de destination.
Utilisez "déplacer", "copier" ou faites glisser votre page avec les formules dans la nouvelle feuille de calcul. Cela laisse les formules de la nouvelle page pointant sur l'ancienne feuille de calcul. Enregistrez ensuite la nouvelle feuille de calcul au même emplacement que l'ancienne feuille de calcul.
Ensuite, accédez à l'onglet Données> cliquez sur Modifier les liens. L'option ne sera active que si la page contient des liens.
Dans la boîte de dialogue qui en résulte, sélectionnez le nom du fichier source, puis cliquez sur "Modifier la source".
Dans la boîte de dialogue d'ouverture de fichier qui apparaît ensuite, sélectionnez le nom de la nouvelle feuille de calcul.
Cliquez sur Fermer et vous avez terminé.
la source
Ou simplement faire ce qui suit:
Convertir ceci:
pour ça:
et plus aucun changement à vos références lorsque vous copiez entre les feuilles de calcul.
Si vous n'avez pas beaucoup de feuilles référencées, une autre alternative serait d'utiliser
et entrez le nom de la feuille de référence dans la cellule B1. Vous ne disposez plus que d'une cellule à mettre à jour lors de la copie dans le nouveau tableur.
la source
INDIRECT
est une formule volatile, elle sera donc recalculée à chaque fois (plutôt que seulement lorsqu'elle sera modifiée), ce qui peut réellement ralentir des classeurs plus complexes, alors utilisez-le avec prudenceLe code ci-dessous peut être adapté à vos besoins. Il prend toutes les formules de la feuille
wb1
et les applique à une feuille d'un nouveau classeur. Les formules sont appliquées en tant queString
s, il n'y a donc aucune insertion de références dans le classeur d'origine. En outre, ce code est très rapide car il n'utilise pas le presse-papiers et ne nécessite aucune boucle entre les cellules.la source
Comme 99% des réponses ne répondaient même pas à la question initiale, voici la réponse appropriée.
Copiez les feuilles du fichier d'origine (Original.xlsx) dans le nouveau fichier Excel (New.xlsx) comme vous le feriez normalement. Généralement, je clique avec le bouton droit sur le nom et choisissez "Déplacer ou copier ...".
Enregistrez le deuxième fichier nouvellement créé (New.xlsx).
Dans le nouveau fichier, sous Données, cliquez sur "Modifier les liens".
Dans la fenêtre pop-up, choisissez "Change Source ..."
Localisez le fichier (New.xlsx) et cliquez sur Ouvrir.
Toutes les références à l'original (Original.xlsx) seront supprimées.
TERMINÉ!
la source
Cela fonctionne pour moi.
la source
Les deux classeurs doivent être ouverts pour que cela fonctionne . Vous exécutez cette macro et il va copier
workbookA!sheet
1 àworkbookB!sheet1
, puis remplacer toutes lesworkbookA
références. C'est brutal, mais ça marche . Vous pouvez évidemment modifier le code afin qu'il corresponde à vos noms WorkbookA.xlsx, mais assurez-vous qu'ils portent l'extension correcte et restent entre guillemets.Oh, pour créer une macro, au cas où vous ne le sachiez pas, appuyez sur alt + F11pour afficher Visual Basic Editor. Puis faites un clic droit sur WBA
insert - module
et copiez et collez le code ci-dessous dans le module. Puis appuyez sur F5pour exécuter la macro. Si la macro ne s'exécute pas, c'est probablement parce que les macros ne sont pas activées. Par conséquent, sauvegardez-la et ouvrez-la à nouveau. Lorsque le système vous invite à activer les macros, activez-les.la source
CTRL+H
présent, mais tout cela ne résout pas les références pour les contrôles, par exemple les boutons, les menus déroulants, etc. et des plages nommées.Pour ce faire, j'ai normalement copié les cellules dans la nouvelle feuille de calcul, puis recherché un remplacement pour supprimer l'ancien chemin de fichier dans les formules.
Par exemple, si la première formule est
=J2
et que cela devient=[filepath]J2
, alors il suffit de rechercher et de remplacer la nouvelle feuille de calcul dans son intégralité pour[filepath]
ne rien remplacer. Cela le supprime et restaure la formule=J2
.Aucun VB requis!
la source
J'avais un problème similaire. La raison pour laquelle les formules ont été collées avec le lien vers WBA est que l'onglet (feuille) sur lequel je travaillais dans WBA portait un nom différent de celui de WBB. Pour moi, c'était toujours "la dernière feuille", mais l'une s'appelait "MinFlow" et l'autre "NormalFlow". J'ai renommé les deux résultats en "Résultats" et le copier / coller a fonctionné comme je le voulais - une "pâte relative".
la source
Sélectionnez les cellules que vous souhaitez déplacer. Maintenant, essayez de les déplacer par glisser-déposer vers une autre feuille de calcul (onglet différent).
Je sais, ça défile. Voici la partie la plus délicate: appuyez simplement sur cmd (mac) ou alt (win) pour laisser les cellules tomber dans un autre onglet.
la source
Bonjour, voici une solution simple à ce problème:
CTRL+F
et sélectionnez l'onglet Remplacer.Replace with
champ, appuyez surReplace All
.Voilà, c'est fait.
la source
Un autre "truc" - avant de copier la feuille de calcul source, remplacez tous les qualificatifs de formule
=
par un autre jeu de caractères (par exemple###=
).Copiez la feuille de calcul sur, puis après copie, remplacez le qualificatif de formule (en remplacement de
###=
par=
).Assurez-vous que toutes les références de feuilles dans les formulaires sont également copiées dans la nouvelle feuille avant la feuille de référence.
la source
Copiez la feuille comme d'habitude. (Cliquez avec le bouton droit de la souris sur l'onglet et allez sur 'déplacer ou copier') C'est pour le formatage.
Copier toutes les cellules de la feuille d'origine (en utilisant Ctrl+A ou le triangle en haut à gauche et Ctrl+ C)
Coller en tant que valeurs dans le nouveau classeur (sur la feuille "étape 1") (Options de collage> 123)
la source
Si vous devez le faire automatiquement parce que vous extrayez des feuilles dans un programme VBA. Utilisez ceci:
Il suffit de changer "Chaîne trouvée dans le nom du livre source". pour correspondre aux anciens liens que vous souhaitez remplacer. Vous pouvez supprimer cette option si vous souhaitez remplacer tous les liens.
la source
Ouvrez les deux classeurs. Dans le classeur source (WorkbookA.xlsx), sélectionnez la feuille que vous souhaitez copier. Cliquez avec le bouton droit de la souris sur l'onglet de la feuille et sélectionnez «Déplacer ou copier…». Dans la boîte de dialogue «Déplacer ou copier», sélectionnez «WorkbookB.xlsx» dans la liste déroulante «Pour réserver», choisissez l'emplacement de votre choix dans le livre et cochez «Créer une copie». (Et cliquez sur “OK”.)
la source
Faites une copie de la feuille que vous souhaitez déplacer, à partir de laquelle ce cas serait WorkbookA.xlsx. Renommez-le en "Copie de WorkbookA.xlsx". Ouvrez maintenant ce nouveau classeur ainsi que le classeur vers lequel vous souhaitez déplacer la feuille, qui dans ce cas serait WorkbookB.xlsx. Cliquez avec le bouton droit de la souris sur les feuilles du classeur de copie que vous avez créé, par exemple, Copie de WorkbookA.xlsx, sélectionnez «Déplacer ou copier», puis déplacez ces feuilles vers WorkbookB.xlsx. Vous avez terminé !
la source