Calcul de cellule Excell


2

Puis-je définir une cellule dans Excel pour y inclure une formule; lorsque j'inscris un chiffre dans cette cellule, celle-ci lui applique automatiquement la formule et affiche le chiffre calculé à la place.

c'est à dire; si dans la cellule A1 je veux écrire un nombre, disons 10; mais je veux que la cellule (A1) calcule 125% de 10. Le résultat est 12,5; affiché dans la cellule A1


Vous voudrez vba dans un événement worksheet_change.
Scott Craner

Jamais fait ça avant. Dans l'onglet Microsoft Visual Basic Developer, je suppose. Que devrais-je faire une fois sur place?
john

Il suffit de google pour "worksheet_change exemple"
Marsh-Wiggle

Réponses:


1

Placez la macro d'événement de feuille de calcul suivante dans la zone de code de la feuille de calcul:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rINT As Range
    Set rINT = Intersect(Target, Range("A1"))
    If rINT Is Nothing Then Exit Sub
    Application.EnableEvents = False
        Range("A1").Value = 1.25 * Range("A1").Value
    Application.EnableEvents = True
End Sub

Comme il s’agit d’un code de feuille de travail, il est très facile à installer et à utiliser automatiquement:

  1. cliquez avec le bouton droit sur le nom de l'onglet situé au bas de la fenêtre Excel
  2. sélectionnez Afficher le code - une fenêtre VBE apparaît
  3. collez le contenu et fermez la fenêtre VBE

Si vous avez des inquiétudes, essayez d’abord sur une feuille de travail d’essai.

Si vous enregistrez le classeur, la macro sera enregistrée avec celui-ci. Si vous utilisez une version d'Excel ultérieure à 2003, vous devez enregistrer le fichier au format .xlsm au lieu de .xlsx.

Pour supprimer la macro:

  1. faire apparaître les fenêtres VBE comme ci-dessus
  2. effacer le code
  3. ferme la fenêtre VBE

Pour en savoir plus sur les macros en général, voir:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

et

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Pour en savoir plus sur les macros d'événements (code de feuille de calcul), voir:

http://www.mvps.org/dmcritchie/excel/event.htm

Les macros doivent être activées pour que cela fonctionne!

EDIT # 1:

Pour cela, pour un bloc de cellules, par exemple de A1 à A10 , remplacez la macro précédente par:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rINT As Range, r As Range
    Set rINT = Intersect(Target, Range("A1:A10"))
    If rINT Is Nothing Then Exit Sub
    For Each r In rINT
        Application.EnableEvents = False
            r.Value = 1.25 * r.Value
        Application.EnableEvents = True
    Next r
End Sub

Merci pour tous les commentaires. J'ai réussi à le faire fonctionner avec celui que j'ai trouvé sur Google. Le dernier commentaire semble beaucoup plus net que celui que j'ai trouvé, et je l'ai aussi utilisé. Tout bon. Une chose cependant. Si je veux que cela soit fait à une liste de personnages dans, disons A1: A10 ,; dois-je configurer à plusieurs reprises dans de nouvelles fenêtres ou puis-je modifier la plage en A1: A10?
john

@john no ................. Je mettrai à jour le message avec une macro de remplacement ...................
Gary's Étudiant

Merci beaucoup. Je pensais pouvoir utiliser Excel. Tout nouveau monde de possibilités s'ouvrant.
john

@john See my EDIT # 1
Etudiant de Gary

@john Puisque cela a fonctionné de façon brillante, veuillez le marquer comme réponse.
Anwar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.