Calcul cellules

Bonjour,

J'ai deux deux cellules "D3 et D4" j'aimerai en VBA si possible, que si je rentre la somme fixe ex.

de 456 dans la cellules "D3" j'ai automatiquement en "D4" la somme de 1488. Pour avoir toujours la somme des deux cellules à 1944

D'avance merci à qui pourra m'aider.

Cordialement

ax

bonjour

en D4 tu saisis

=1944-D3

pourquoi voulais-tu du VBA ?

amitiés

Salut Max18 et le forum

Il faut faire appel à la macro automatique Change, avec les risques que ça peut comporter.

Clic droit sur le nom de l'onglet>>Visualiser le code => dans le module coller :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D3:D4]) Or Target.Count Is Nothing Then Exit Sub
'si la cellule modifié n'est ni D3, ni D4, sortir
Application.EnableEvents = False
'Bloquer la gestion des évènement
If Target.Address(0, 0) = "D3" Then
'si la cellule a pour adresse D3
    [D4] = 1944 - [D3]
    'D4 = 1944-D3
Else
'sinon
    [D3] = 1944 - [D4]
    'D3 = 1944-D4
End If
Application.EnableEvents = True
'remise en route gestion des évènements
End Sub

Normalement je ne fais jamais appel à une instruction du niveau Application sans faire une gestion d'erreur. Mais j'ai la flemme

Petite remarque : je ne fais que répondre à la demande. Mais une simple formule devrait suffire avec le sujet donné

A+

Bonsoir Gorfael

Et merci beaucoup d'avoir répondu.

J'ai bien mis ton code mais j'ai un message d'erreur "Erreur de compilation: Incompatibilité de type " au niveau de cette ligne

 If Intersect(Target, [D3:D4]) Or Target.Count Is Nothing Then Exit Sub

Un grand merci d'avance

Bonne soirée

Max

7points.xlsm (26.47 Ko)

Bonjour et bonne fêtes à tous,

J'ai un code ma fonctionne très bien qui ma été fait par Gorfael a qui je salut et remercie encore. J'aimerai lui apporter une modification.

Private Sub Worksheet_Change(ByVal Target As Range)

  With Target
    If .Count > 1 Or .Column <> 7 Or .Row < 3 Then Exit Sub
    Application.EnableEvents = False
        If .Row Mod 2 <> 0 Then .Offset(1).Value = 1944 - .Value
    Application.EnableEvents = True
End With

    If Intersect(Target, [G3:G4]) Is Nothing Or Target.Count > 1 Then Exit Sub
    'si la cellule modifié n'est ni D3, ni D4, sortir
    Application.EnableEvents = False
    'Bloquer la gestion des évènement
    If Target.Address(0, 0) = "G3" Then
    'si la cellule a pour adresse D3
       [G4] = 1944 - [G3]
        'G4 = 1944-G3

    Else
    'sinon
       [G3] = 1944 - [G4]
        'G3 = 1944-G4

    End If
    Application.EnableEvents = True
    'remise en route gestion des évènements
    End Sub

J'aimerai pouvoir calculer les colonnes "G,H, I et J" de la même manière.

D'avance merci à qui pourra m'aider.

Cordialement

Max

Rechercher des sujets similaires à "calcul"