Question Comment puis-je retourner une colonne calculée dans une colonne de données dans un tableau Excel?


J'ai un grand tableau Excel (44 colonnes, plus de 1000 lignes), mais une des colonnes a été accidentellement transformée en une colonne calculée (Vois ici). Le résultat étant que maintenant, lorsque les utilisateurs essaient d'ajouter de nouvelles lignes à la table (en faisant glisser la poignée en bas à droite), elle remplit de manière inappropriée les nouvelles lignes de cette colonne avec des erreurs de feuille de calcul.

J'ai essayé d'effacer le contenu de chaque cellule de cette colonne que je peux trouver qui a la formule, mais il le traite toujours comme une colonne calculée, au lieu d'une colonne normale.

Comment puis-je le désactiver? Je peux employer VBA si nécessaire, cependant, je ne peux pas me débarrasser des colonnes calculées ou de la saisie automatique pour toute la table car nous les utilisons tous les deux de manière intensive.


De plus, comment éviter que les utilisateurs recommencent accidentellement cette opération à l'avenir? Ils ne doivent saisir des données que dans les 10 premières colonnes, pas dans les formules, mais ils ne suivent pas toujours les instructions naturellement…


3
2018-03-20 14:28


origine


Avez-vous essayé de copier toute la colonne et de la recoller sur elle-même en utilisant Paste values? - techturtle
Oui, ça a marché! Merci! Des idées sur la deuxième partie? - RBarryYoung
Ajout de ma suggestion comme réponse pour que vous puissiez l'accepter, et j'ai inclus quelques réflexions sur la prévention de ce problème. - techturtle
J'ai mis à jour ma réponse ci-dessous. Vous ne pouvez pas garantir que cette méthode empêchera la création accidentelle de colonnes calculées, mais les empêchera d'entrer des formules. - techturtle


Réponses:


Le moyen le plus rapide de supprimer un grand nombre de formules est de sélectionner la colonne, de la copier et de la coller sur elle-même à l'aide du Paste Values fonction.

Pour ce qui est d’empêcher les utilisateurs de répéter cela, la seule façon de le savoir serait d’utiliser le Protéger la feuille et Protéger le classeur fonctionnalités. Que ceux-ci puissent être adaptés à votre scénario particulier dépendrait vraiment de ce que vous essayez de protéger et de ce que vous devez encore permettre aux utilisateurs de faire. En règle générale, cependant, vous pouvez limiter les utilisateurs à modifier uniquement certaines plages, colonnes ou lignes en verrouillant toutes les autres cellules. Il y a des options pour permettre aux utilisateurs d'insérer encore de nouvelles lignes, si désiré. Malheureusement, je ne sais pas comment verrouiller les feuilles pour que les utilisateurs puissent saisir des données mais ne peuvent pas ajouter de formules.

Vous pourriez utiliser La validation des données ajouter un message d'entrée rappelant aux utilisateurs de ne pas saisir de formules. Ce ne serait pas Arrêtez eux, mais ça leur rappellerait au moins constamment. La validation des données peut également être utilisée pour les forcer à entrer un type de données spécifique, mais cela n'empêche pas une formule fournissant le type de données correct en résultat.


METTRE À JOUR:

Vous pouvez explicitement rejeter des formules dans Excel en utilisant l'événement Worksheet_Change, comme ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("C:C"), Range(Target.Address)) Is Nothing Then
        If Range(Target.Address).HasFormula Then
            Range(Target.Address).Value = ""
            MsgBox "You may not enter formulas on this sheet!"
        End If
    End If
End Sub

Dans cet exemple, la plage cochée pour les formules correspond à l'intégralité de la colonne C. Vous pouvez définir n'importe quelle plage que vous souhaitez vérifier, puis supprimer la formule, la remplacer par quelque chose, avertir l'utilisateur, etc.


6
2018-03-20 15:36



Petit point, sélectionnez la colonne sélectionnez la colonne du tableau (et non la colonne de la feuille). - pnuts


TechRepublic a:

Function IdentifyFormulaCellsUsingCF(rng As Range) As Boolean  
IdentifyFormulaCellsUsingCF = rng.HasFormula
End Function

qui peut être utilisé pour mettre en évidence (par exemple jaune) et formater (par exemple "NE PAS UTILISER FORMULE") les cellules avec des formules.

N'empêche pas la saisie de formules mais fournit un avertissement plus immédiat que la commande Rechercher> Formules.


2
2018-03-20 16:52