Excel : calcul automatique dans une cellule

Résolu
hys56 -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, je voudrais savoir comment je peux faire effectuer un calcul dans une cellule au moment où j'inscris un nombre
ex : j'écris un chiffre et je veux qu'il soit divisé par 4
il faut que cela soit possoble dans une plage de cellules et aussi dans des colonnes différentes en variant le diviseur
je suppose qu'il faut passer par le vba...que je ne connais pas alors si qqun peut m'aider ce serait gentil
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    ex : j'écris un chiffre et je veux qu'il soit divisé par 4

    tu écris : =32/4 et tu obtiens 8

    il faut que cela soit possoble dans une plage de cellules et aussi dans des colonnes différentes en variant le diviseur

    Dans la cellule D1 par exemple tu mets 5, dans la cellule D2 par exemple tu mets 3

    Dans ta plage tu écris : =41/D1 et tu obtiens 8,2 ou =30/D2 et tu obtiens 10 et si tu mets 2 en D2 tu obtiens 15

    Ce n'est peut-être pas ce que tu veux mais tu avoueras que ne n'est pas courant de saisir un chiffre pour en voir un autre...
    0
  2. hys56
     
    bonsoir je crois que tu ne comprends pas la demande j'ai besoin que le calcul s'effectue immédiatement dans la cellule lorsque j'inscris le chiffre je connais bien sûr le système que tu mes proposes une cellule qui sert de référence à partir de laquelle on effectue le calcul c'est simple mais ça multiplie les colonnes on ne peut pas ensuite supprimer la colonne de référence
    avec une programmation en vba c'est possible mais je ne m'y connais pas c'est pourquoi j'espère une aide sur ce forum
    j'ai déjà eu des proposition mais ça ne marche pas ex

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo FIN
    p1 = Intersect(Target, [A10:A25]) Is Nothing
    p2 = Intersect(Target, [B10:B25]) Is Nothing
    p3 = Intersect(Target, [c10:c25]) Is Nothing
    p4 = Intersect(Target, [d10:d25]) Is Nothing
    If p1 = False Then d = 3
    If p2 = False Then d = 4
    If p3 = False Then d = 5
    If p4 = False Then d = 6
    Application.EnableEvents = False
    If (IsNumeric(Target) And Not IsEmpty(Target)) Then Target = Target / d
    FIN:
    Application.EnableEvents = True
    End Sub
    c'est un code à copier dans l'onglet de la feuille et qui permet d'effectuer le calcul mais...il y a pb lequel??
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Effectivement je n'avais pas tout à fait compris mais je te corrige ta macro pour qu'elle fonctionne
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo FIN
    Dim d As double
    If Not Intersect(Target, [A10:A25]) Is Nothing Then d = 3
    If Not Intersect(Target, [B10:B25]) Is Nothing Then d = 4
    If Not Intersect(Target, [c10:c25]) Is Nothing Then d = 5
    If Not Intersect(Target, [d10:d25]) Is Nothing Then d = 6
    Application.EnableEvents = False
    If (IsNumeric(Target) And Not IsEmpty(Target)) Then Target = Target / d
    FIN:
    Application.EnableEvents = True
    End Sub
    

    C'est vrai que cela fait ce que tu veux mais cela surprend.
    bon test.
    0
  4. hys56
     
    bonjour merci pour la corre'ction ça marche impec bon dimanche
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cala
     
    bonsoir
    je suis débutante et j'aimerai savoir comment faire pour pouvoir faire une augmentation de tarifs (ex: 5%) sur une grille tarifaire
    merci
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    ta question n'a aucun rapport avec ce sujet résolu alors ouvres une autre discussion en mettant un peu plus de précision s itu veux une réponse adaptée.
    0