Cellule avec formule ou texte

Bonjour à tous,

Alors voilà, dans le cadre de ma profession, j'ai réalisé une feuille afin de calculer des données de coupe pour la programmation de ma fraiseuse CNC.

Dans ma feuille excel (que je n'ai pas sur mon pc à domicile) je souhaite réaliser un calcul très simple, qui est la multiplication de deux cellules. Cependant la valeur d'une des cellules à multiplier est, soit le résultat d'une opération, par exemple C1 = A1*B1, soit une valeur donnée que je n'ai pas besoin de calculer. Est-il possible, d'utiliser la cellule C1 ainsi, soit, elle comporte la formule "A1*B1" soit je rempli une valeur à la main, sans que la formule disparaisse?

Bonjour,

A tester, si j'ai compris

11lulu1992.xlsm (13.13 Ko)

Merci pour la réponse, mais rien ne se passe avec ton fichier. C'est juste des cellules avec des chiffres sans formules

Re,

Avant de dire que cela ne fait rien regarde celui que je t'envoi

en col "C", il y a la formule a*b

si tu met un autre chiffre en c autre que le résultat le chiffre reste

si tu effaces ton chiffre, le calcul revient (a*b)

13lulu1992-1.xlsm (13.79 Ko)

Cette fois ça marche je t'assure que sur la feuille d'avant non. Comment as-tu fais ça?

Re,

tu as une macro dans la feuille 1 (ALT F11) pour la visualiser et modifier

Je te remercie c'est top, je vais poster ma feuille demain pour une autre demande coasi similaire à celle-ci.

Me revoilà!

Je vais pouvoir faire les choses correctement cette fois-ci. Donc, vous trouverez ma feuille en téléchargement et voici ce que je cherche à faire. La cellule D17 = D5*D16, j'aimerais donc avoir la possibilité de remplir à la main soit la cellule D17 soit la cellule D16 la valeur D5 étant donnée. Donc si je remplis D16, D17 = D5*D16 et si je rempli D17, D16 = D17/D5.

Merci encore une fois d'avance.

Bonjour,

A tester

Bonjour,

Une autre proposition :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [D16,D17]) Is Nothing Then
        Application.EnableEvents = False
        Select Case Target.Address
            Case "$D$16": [D17] = [D16] / [D5]
            Case "$D$17": [D16] = [D17] / [D5]
        End Select
        Application.EnableEvents = True
    End If
End Sub

Bonjour Jean Eric

Plutôt

Case "$D$16": [D17] = [D16] * [D5]

Re,

Bonjour M12,

C'était avant mon café au lait et mes céréales.

Cdlt.

Merci les James vous êtes des nuques, c'est tiptop.

Re,

Et en français ?

Thank you "les gars" you are "des Pros", it's "Nickel-Chrome"

Ahaha c'est exactement ça M12

Je suis en train d'essayer d'utiliser le VBA par moi-même.

Voilà ce que ça donne

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D15")) Is Nothing Then
        Range("D14") = Range("D15") / Range("D5")
    End If

    If Not Application.Intersect(Target, Range("D14")) Is Nothing Then
        Range("D15") = Range("D14") * Range("D5")
    End If

    If Not Intersect(Target, [D16,D17,D18]) Is Nothing Then
        Application.EnableEvents = False
        Select Case Target.Address
            Case "$D$16": [D17] = ([D16] / [D9]) * 100
                          [D18] = Sheets("Feuil2").Range("C9").Value
            Case "$D$17": [D16] = ([D17] * [D9]) / 100
                          [D18] = Sheets("Feuil2").Range("C9").Value
            Case "$D$18": [D16] = Sheets("Feuil2").Range("C10").Value
                          [D17] = ([D16] / [D9]) * 100
        End Select
        Application.EnableEvents = True
    End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, [G16,G17,G18]) Is Nothing Then
        Application.EnableEvents = False
        Select Case Target.Address
            Case "$G$16": [G17] = ([G16] / [D9]) * 100
                          [G18] = Sheets("Feuil2").Range("G9").Value
            Case "$G$17": [G16] = ([G17] * [D9]) / 100
                          [G18] = Sheets("Feuil2").Range("G9").Value
            Case "$G$18": [G16] = Sheets("Feuil2").Range("G10").Value
                          [G17] = ([G16] / [D9]) * 100
        End Select
        Application.EnableEvents = True
    End If

End Sub

Le problème est que j'aimerais séparer les 3 fonctions mais VBA refuse de me laisser le faire. De quelle manière procéder pour les nommer et les séparer de manière distincte ou les fusionner sans qu'elles interfèrent entre-elles

Je pense avoir trouvé une solution par moi-même, que pensez-vous du code? Il n'est pas trop brouillon?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, [D14,D15,D16,D17,D18,G16,G17,G18]) Is Nothing Then
        Application.EnableEvents = False
        Select Case Target.Address

            Case "$D$14": [D15] = ([D14] * [D5])

            Case "$D$15": [D14] = ([D15] / [D5])

            Case "$D$16": [D17] = ([D16] / [D9]) * 100
                          [D18] = Sheets("Feuil2").Range("C9").Value

            Case "$D$17": [D16] = ([D17] * [D9]) / 100
                          [D18] = Sheets("Feuil2").Range("C9").Value

            Case "$D$18": [D16] = Sheets("Feuil2").Range("C10").Value
                          [D17] = ([D16] / [D9]) * 100

            Case "$G$16": [G17] = ([G16] / [D9]) * 100
                          [G18] = Sheets("Feuil2").Range("G9").Value

            Case "$G$17": [G16] = ([G17] * [D9]) / 100
                          [G18] = Sheets("Feuil2").Range("G9").Value

            Case "$G$18": [G16] = Sheets("Feuil2").Range("G10").Value
                          [G17] = ([G16] / [D9]) * 100

        End Select
        Application.EnableEvents = True
    End If

End Sub

Re,

Pour le fun, pas testé !

Cdlt.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet

    If Not Intersect(Target, [D14:D18,G16:G18]) Is Nothing Then

        Application.EnableEvents = False

        Set ws = ActiveWorkbook.Worksheets("Feuil2")

        Select Case Target.Address
            Case "$D$14"
                [D15] = ([D14] * [D5])
            Case "$D$15"
                [D14] = ([D15] / [D5])
            Case "$D$16"
                [D17] = ([D16] / [D9]) * 100
                [D18] = ws.[C9]
            Case "$D$17"
                [D16] = ([D17] * [D9]) / 100
                [D18] = ws.[C9]
            Case "$D$18"
                [D16] = ws.[C10]
                [D17] = ([D16] / [D9]) * 100
            Case "$G$16"
                [G17] = ([G16] / [D9]) * 100
                [G18] = ws.[G9]
            Case "$G$17"
                [G16] = ([G17] * [D9]) / 100
                [G18] = ws.[G9]
            Case "$G$18"
                [G16] = ws.[G10]
                [G17] = ([G16] / [D9]) * 100
        End Select

        Application.EnableEvents = True

    End If

    Set ws = Nothing

End Sub

Re-bonjour à tous,

Merci encore pour votre aide, elle m'a été des plus précieuse. J'aurais encore une requête à vous faire parvenir. Est-il possible, lorsque nous utilisons le menu déroulant de la case D4, que la page se rafraîchisse et recalcule les cellules qui en dépendent?

Merci d'avance

Rechercher des sujets similaires à "formule texte"