Désactiver le changement automatique de la référence de la cellule D'Excel après copier / coller

j'ai une feuille de calcul massive Excel 2003 sur laquelle je travaille. Il y a beaucoup de très grandes formules avec beaucoup de références de cellule. Voici un exemple simple.

='Sheet'!AC69+'Sheet'!AC52+'Sheet'!AC53)*$D+'Sheet'!AC49

La Plupart d'entre eux sont plus compliqués que cela, mais cela donne une bonne idée de ce avec quoi je travaille. Peu de ces références de cellules sont absolues ($s). J'aimerais pouvoir copier ces cellules à un autre endroit sans que les références changent. Je sais que je peux simplement utiliser f4 pour rendre les références absolues, mais il y a beaucoup de données et je pourrais avoir besoin de remplir plus tard. Y a-t-il un moyen de désactiver temporairement la référence de la cellule en changeant Sur copier-coller/remplir sans rendre les références absolues?

EDIT: je viens de découvrir que vous pouvez le faire avec VBA en copiant le contenu de la cellule sous forme de texte au lieu d'une formule. J'aimerais ne pas avoir à faire cela cependant parce que je veux copier des lignes/colonnes entières à la fois. Y a-t-il une solution simple qui me manque?

41
demandé sur Bat Masterson 2011-07-12 21:25:48

11 réponses

à partir de http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas_take_2:

  1. mettez Excel en mode de vue de formule. La façon la plus facile de faire ceci est d'appuyer sur Ctrl+` (ce caractère est une "apostrophe à l'envers", et est habituellement sur la même clé qui a le ~ (tilde).
  2. Sélectionner la plage à copier.
  3. Appuyez Sur Ctrl+C
  4. Démarrer Le Bloc-Notes De Windows
  5. appuyez sur Ctrl+V pour passer les données copiées dans Le bloc-notes
  6. dans Notepad, appuyez sur Ctrl+A suivi de Ctrl+C pour copier le texte
  7. activez Excel et activez la cellule supérieure gauche où vous voulez coller les formules. Et assurez-vous que la feuille sur laquelle vous copiez est en mode formula view.
  8. appuyez sur Ctrl+V pour coller.
  9. appuyez sur Ctrl+` pour basculer hors du mode de vue de formule.

Note: Si l'opération de coller de nouveau sur Excel ne fonctionne pas correctement, il y a des chances que vous ayez utilisé Excel La fonctionnalité de texte-à-colonnes récemment, et Excel essaie d'être utile en se rappelant comment vous avez analysé vos données pour la dernière fois. Vous devez activer L'Assistant Convert Text to Columns. Choisissez L'option délimitée et cliquez sur Suivant. Effacer tous les pointages de L'option de délimiteur sauf L'onglet.

Ou, à partir de http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas/:

If you're a VBA programmer, you can simply execute the following code: 
With Sheets("Sheet1")
 .Range("A11:D20").Formula = .Range("A1:D10").Formula
End With
52
répondu Whit Kemmey 2013-04-22 18:54:23

une solution très simple est de sélectionner la gamme que vous souhaitez copier, puis de trouver et de remplacer (Ctrl + h), en remplaçant = d'un autre symbole qui n'est pas utilisé dans votre formule (par exemple,#) - l'empêchant ainsi d'être un actif de formule.

Ensuite, copiez et collez la plage sélectionnée pour son nouvel emplacement.

Enfin, Rechercher et Remplacer pour modifier # retour = à la fois dans la gamme originale et dans la nouvelle, rétablissant ainsi les deux gammes à être des formules de nouveau.

22
répondu Alistair Collins 2014-04-25 09:40:39

je suis venu sur ce site à la recherche d'un moyen facile de copier sans changer les références de cellules. Mais maintenant je pense que ma propre solution est plus simple que la plupart de ces méthodes. Ma méthode repose sur le fait que copier change les références mais pas déplacer. Voici un exemple simple.

supposons que vous avez des données brutes dans les colonnes A et B, et une formule dans C (par exemple C=A+B) et vous voulez la même formule dans la colonne F mais copier de C à F conduit à F = D+E.

  1. copier le contenu de C à n'importe quel temporaire vide de la colonne, disons R. Les références relatives va changer pour R=P+Q, mais ignorer ce même si elle est considérée comme une erreur.
  2. revenir à C et déplacer (pas copier) il à F. La formule doit être inchangée donc F=A+B.
  3. maintenant allez à R et copiez - le à nouveau à C. La référence Relative reviendra à C=A+B
  4. supprimer la formule temporaire dans R.
  5. Bob est votre oncle.

j'ai fait cela avec une gamme de cellules donc j'imagine que ça marcherait avec pratiquement n'importe quel niveau de complexité. Vous avez juste besoin d'une zone vide pour garer les cellules coupées. Et bien sûr, tu dois te rappeler où tu les as laissées.

5
répondu JimH 2014-08-13 13:43:33

cette astuce simple fonctionne: copier et coller. Ne pas couper et coller. Après avoir collé, puis resélectionner la partie que vous avez copiée et aller à modifier, glisser vers le bas pour effacer, et effacer le contenu.

1
répondu Bob R 2015-12-28 03:43:37

je pense que vous êtes coincé avec le contournement que vous avez mentionné dans votre édition.

je commencerais par Convertir chaque formule sur la feuille en texte à peu près comme ceci:

Dim r As Range

For Each r In Worksheets("Sheet1").UsedRange
    If (Left$(r.Formula, 1) = "=") Then
        r.Formula = "'ZZZ" & r.Formula
    End If
Next r

'ZZZ utilise ' pour signifier une valeur de texte et le ZZZ comme une valeur que l'on peut regarder quand on veut convertir le texte à la formule. Évidemment si l'une de vos cellules commence réellement avec le texte ZZZ alors changez le ZZZ valeur dans la macro VBA à autre chose

Lors de la réorganisation terminée, je puis convertir le texte d'une formule comme ceci:

For Each r In Worksheets("Sheet1").UsedRange
    If (Left$(r.Formula, 3) = "ZZZ") Then
        r.Formula = Mid$(r.Formula, 4)
    End If
Next r

un vrai inconvénient de cette méthode est que vous ne pouvez pas voir les résultats d'aucune formule pendant que vous réorganisez. Vous pouvez trouver que lorsque vous convertissez de nouveau du texte à la formule que vous avez une masse de #REF erreurs par exemple.

il pourrait être bénéfique de travailler sur ce point par étapes et de revenir à des formules de temps en temps pour vérifier qu'aucun catastrophes ont eu lieu

0
répondu barrowc 2011-07-12 18:50:14

il est courant d'utiliser find/ replace pour désactiver des formules tout en effectuant des manipulations. Par exemple, copier avec transposer. La formule est désactivée en plaçant un placeholder (par exemple "$=") devant elle. Rechercher remplacer pouvez vous débarrasser de ces une fois la manipulation terminée.

cette vba automatise simplement la recherche/ remplacement de la feuille active.

' toggle forumlas on active sheet as active/ inactive
' by use of "$=" prefix

Sub toggle_active_formulas()
    Dim current_calc_method As String
    initial_calc_method = Application.Calculation
    Application.Calculation = xlCalculationManual
    Dim predominant As Integer
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.Cells
        If c.HasFormula Then
            predominant = predominant + 1
        ElseIf "$=" = Left(c.Value, 2) Then
            predominant = predominant - 1
        End If
    Next c
    If predominant > 0 Then
        For Each c In ActiveSheet.UsedRange.Cells
            On Error Resume Next
            If c.HasFormula Then
                c.Value = "$" & c.Formula
            End If
        Next c
    Else
        For Each c In ActiveSheet.UsedRange.Cells
            On Error Resume Next
            If "$=" = Left(c.Value, 2) Then
                c.Formula = Right(c.Value, Len(c.Value) - 1)
            End If
        Next c
    End If
    Application.Calculation = initial_calc_method
End Sub
0
répondu Chris 2016-07-19 16:38:35

Essayez ceci: Faites un clic gauche sur l'onglet, faites une copie de la feuille entière, puis coupez les cellules que vous voulez garder les mêmes et collez-les dans votre feuille de travail originale.

-1
répondu Lisa 2015-09-18 23:09:26

j'ai trouvé une autre solution qui est très simple: 1. Couper le contenu 2. Coller dans le nouvel emplacement 3. Copiez le contenu que vous venez de coller dans le nouvel emplacement vous le souhaitez. 4. Annulez l'opération couper-coller, remettez le contenu original là où vous l'avez eu. 5. Coller le contenu du presse-papiers au même endroit. Ces contenus auront les références originales.

il semble beaucoup, mais est super rapide avec des raccourcis clavier: 1. Ctrl-x, 2. Ctrl-v, 3. Ctrl-c, 4. Ctrl-z, 5. Ctrl-v

-1
répondu Isaac 2016-05-03 07:35:47

N'ont pas vérifié dans Excel, mais cela fonctionne dans Libreoffice4:

tout le truc de réécriture d'adresse vient pendant

(a1) couper

(a2) coller

vous devez interrompre la consécration en mettant quelque chose entre les deux:

(b1) couper

(b2) sélectionnez les cellules vides (plus de 1) et faites-la glisser(déplacer)

(b3) pâte

l'Étape (b2) est où la cellule qui est sur le point de se mettre à jour arrête le tracking. Rapide et simple.

-1
répondu user1501439 2017-01-29 13:59:32

Cliquez sur la cellule que vous souhaitez copier. Dans la barre de formule, mettez en surbrillance la formule.

Appuyez sur Ctrl C.

Appuyez sur la touche echap (pour vous sortir de activement l'édition de cette formule).

choisir une nouvelle cellule. Ctrl V.

-1
répondu Melinda Evans 2017-05-05 05:22:55

solution simple que j'ai utilisée tout à l'heure dans une situation similaire:

  1. Faire une copie de la feuille de calcul
  2. Couper + Coller à partir de la feuille de travail dupliquée
  3. supprimer la feuille de travail en double pour nettoyer

vos références cellulaires sont maintenant copiées sans être modifiées.

-1
répondu dire 2018-07-11 23:20:30