Fonction dans une cellule

Bonsoir à tous,

Voilà, je fais un petit fichier sous EXCEL 2010 beta concernant des prises de mesures pour la construction de "pont".

Je suis plus que novice sur EXCEL.

Ma question est la suivante:

- Dans une "cellule" (de K12 à K40), j'ai inséré une formule de soustraction de DEUX autres "cellules" qui s'en rattachent. (Ex dans K12:=G12-J12). Cependant, suivant la manière dont je prend les mesures, il m'est possible de directement compléter la "cellule" K. Lorsque je la complète directement, ma fonction s'efface. C'est normal mais existe-il une manip pour soit rentrer la donnée directement ou soit remplir DEUX autres "cellules" qui calculeront la soustraction?

Merci à vous

Bonsoir,

Mets ton fichier en ligne ce sera plus facile de voir de quoi il retourne

Amicalement

Voilà, sous l'onglet "vierge"

Merci

Bonsoir,

Je viens de télécharger ton fichier, mais qu'est-ce qui te gêne dedans ?

Tu saisis simplement ton chiffre dans la colonne K, sinon tu rentres tes données en G et J et tu obtiens la soustraction !!

Je peux éventuellement te proposer une fonction SI qui effectue un calcul différent de la soustraction si tu saisis uniquement en G (ou en J si tu préfères cette méthode).

A+

Merci pour ta réponse. Mon fichier est en fait un fichier d'exemple. Ce qui veut dire qu'on le rempli puis on sort une copie papier et on efface les données des colonnes non colorées.

Si maintenant je choisis de directement rentrer ma valeur dans K puis que je l'efface, ma fonction de soustraction est effacée aussi pour cette case..

Ce n'est peut-être pas possible de faire ce que je demande.

Merci

Voici un exemple avec une fonction SI, j'ai ajouté une colonne, tu remplis soit J et G soit K, la colonne L affiche K ou la soustraction de G-J.

Je vais tâcher de voir en faisant une macro sur la feuille qui remettrait les formules si G et J sont vides.

A+

Re,

Tu peux faire sans formule en colonne K.

  • Clique droite sur l'onglet "Vierge"
  • Choisis l'option "visualiser le code"
  • dans la fenêtre colle le code ci-dessous
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan le  12/10/2010 pour Zouave 54
Dim lg As Integer
lg = Target.Row
If Not Intersect(Target, Range("G" & lg, "H" & lg)) Is Nothing Then
    If Range("G" & lg) > 0 And Range("H" & lg) > 0 Then
        Range("K" & lg) = Range("G" & lg) - Range("H" & lg)
    Else: Range("K" & lg) = 0
    End If
End If
End Sub

Amicalement

Bonjour Zouave, Bonjour Dan,

Je suis très intéressé par ce sujet et me permets d’y intervenir.

Zouave,

Apparemment Dan a confondu la colonne H et la J. Selon moi, son code devrait être corrigé ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan le  12/10/2010 pour Zouave 54
Dim lg As Integer
lg = Target.Row
If Not Intersect(Target, Range("G" & lg, "J" & lg)) Is Nothing Then
    If Range("G" & lg) > 0 And Range("J" & lg) > 0 Then
        Range("K" & lg) = Range("G" & lg) - Range("J" & lg)
    Else: Range("K" & lg) = 0
    End If
End If
End Sub

Avec ce code ainsi corrigé, si tu effaces un chiffre des colonnes G ou J, la cellule correspondante de la colonne K se remet à zéro. Par contre, si tu sélectionnes plusieurs cellules des colonnes G et/ou J, toutes les cellules correspondantes de la colonne K ne sont pas remises à zéro. Est-ce gênant pour toi ?

Dan,

J’aurais trouvé intéressant que si l’on inscrit un chiffre dans la colonne K, les cellules correspondantes des colonnes G et J soient effacées. J’ai essayé de me baser sur un code que tu m’avais fourni sur un autre fil afin d’y arriver – avec un passage Select Case Target.Address - mais j’ai fait chou blanc. Aurais-tu une solution dans ce sens ? A tout hasard, voici un extrait du code que tu m’avais proposé à l’époque :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C2, C3, C6")) Is Nothing Then
Select Case Target.Address
     Case "$C$2", "$C$3"
     ‘…
     Case "$C$6"
     ‘……
End Select
End If
End Sub

Zouave,

Encore une chose : si ça te gênes que j’intervienne sur ton fil, fais-le-moi savoir.

Bonnes salutations à vous tous.

re,

Merci Yvouille de ton attention sur ce fil car effcetivement j'ai confondu H et J. Toutefois le code doit être celui-ci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan le  12/10/2010 pour Zouave 54
Dim lg As Integer
lg = Target.Row
If Not Intersect(Target, Range("G" & lg & "," & "J" & lg)) Is Nothing Then
    If Range("G" & lg) > 0 And Range("J" & lg) > 0 Then
        Range("K" & lg) = Range("G" & lg) - Range("J" & lg)
    Else: Range("K" & lg) = 0
    End If
End If
End Sub

Pour Yvouille : je vois ta demande et vais te proposer un code

Amicalement

Edit Dan : Si l'on ajoute la demande Yvouille qui est de vider les cellules G et J lorsque l'on remplit la cellule K, dans le même esprit le code devient celui-ci :

Dim ok As Boolean
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan le  12/10/2010 pour Zouave 54
Dim lg As Integer
If ok = True Then Exit Sub
lg = Target.Row
If Not Intersect(Target, Range("G" & lg & "," & "J" & lg)) Is Nothing Then
    ok = True
    If Range("G" & lg) > 0 And Range("J" & lg) > 0 Then
        Range("K" & lg) = Range("G" & lg) - Range("J" & lg)
    Else: Range("K" & lg) = 0
    End If
End If
If Not Intersect(Target, Range("K" & lg)) Is Nothing Then
    ok = True
    Range("G" & lg) = ""
    Range("J" & lg) = ""
End If
ok = False
End Sub

Code toujours à placer dans la feuille "Vierge" selon la procédure décrite dans mon post précédent.

Amicalement

Edit Dan: Correction dans la ligne de code suite à info de Yvouille --> Remplacé H par J.

Salut Dan,

Je trouve ta solution pour vider les cellules vraiment intéressante. J'espère qu'elle convienne également à Zouave.

Il reste juste une petite erreur à la ligne

Range("K" & lg) = Range("G" & lg) - Range("J" & lg)

que je me permets de signaler au cas où ....

Bonnes salutations.

Edit Dan : Merci Yvouille. J'ai corrigé dans le code de mon post.

Tout d'abord, merci à tous d'avoir répondu à mon sujet.

A DACHEVID,

J'avais besoin ce matin de mon fichier pour un travail de dernière minute et j'ai donc pris la méthode de DACHEVID. Merci à toi car ça m'a dépanné!!!!

A DAN,

Je viens maintenant de replonger sur ce petit problème et le dernier code donné par DAN fonctionne parfaitement!!!!

Dire que je me casse la tête à rentrer des formules.... Merci pour ta solution. Je l'ai adoptée, installée et enregistrée!!!!

A YVOUILLE,

Merci à toi pour ta contribution et NON tu ne m'a pas dérangé Que du contraire. Merci à vous en tout cas d'avoir trouvé réponse à mon problème avec des délais aussi court!!!!

Je classe ce topic comme résolu! Merci!

Rechercher des sujets similaires à "fonction"