VBA : faire une soustraction sur deux cellule inconnue
RésoluJerome -
Bonjour,
Dans le cadre de la réalisation de ma macro, j'ai créé une variable pour définir ma première colonne vide.
SA = Range("B1").End(xlToRight).Column + 1
Puis j'ai sélectionné celle d'après avec
Cells(1, SA + 1).Select
Sur cette cellule, j'aimerais réaliser une soustraction sur deux cellules de la même ligne mais de colonne différente. Pour illustration, imaginons que
Cells(1, SA ).Select = E1
Cells(1, SA - 1).Select = D1
Ce que j'aimerais c'est réussir à faire la soustraction de ces deux cellules (D1-E1) en cellule Cells(1, SA + 1).Select = F1
J'ai essayé ceci qui ne fonctionne pas du tout
Cells(1, SA + 1).Formula = "=Cells(2, SA - 1) - Cells(2, SA)"
Je vous remercie pour votre aide
Amicalement
Windows / Chrome 95.0.4638.54
- VBA : faire une soustraction sur deux cellule inconnue
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
5 réponses
Bonjour.
Tu as déjà reçu la solution pour faire l'addition https://forums.commentcamarche.net/forum/affich-37658421-vba-faire-une-somme-sur-une-colonne-inconnue-variable
Tu ne peux pas l'adapter pour faire une soustraction ?
Bonjour à tous les deux
1. Tu veux que Cells(1, SA + 1) reçoive le résultat de Cells(2, SA - 1) - Cells(2, SA)
Cells(1, SA + 1) = Cells(2, SA - 1) - Cells(2, SA)
2. Tu veux que Cells(1, SA + 1) reçoive la formule qui fait référence aux deux cellules Cells(2, SA - 1) et Cells(2, SA)"
f = "=" & Cells(2, SA - 1).Address & "-" & Cells(2, SA).Address
Cells(1, SA + 1).FormulaLocal = f
3. Autre chose ?
Cdlmnt
Bonjour CCM81,
C'est parfait, vous avez complétement compris ma demande et vous y avez répondu parfaitement. Un très grand merci.
Une petite question, normalement, j'envoie la formule jusqu'en bas avec le code
derligneSA = Range("B" & Rows.Count).End(xlUp).Row
Selection.AutoFill Destination:=Range(Cells(2, SA + 1), Cells(derligneSA, SA + 1))
Sauf qu'avec la formule
f = "=" & Cells(2, SA - 1).Address & "-" & Cells(2, SA).Address
Ca me renvoie ceci sur le tableur et du coup la plage des n° est bloquée par les $
=$G$2:$G$2-$H$2:$H$2
Est il possible d'avoir le même résultat mais sans les $ ? D'avoir cette même formule, mais sans qu'il mette les $ sur les n° ?
= "=" & Cells(2, SA - 1).Address & "-" & Cells(2, SA).Address
Encore merci pour tout
Cordialement
Tu ajoutes cette ligne avant d'affecter f
f = Replace(f, "$", "")
Cdlmnt
Merci +++
Avec ce code
Cells(2, SA + 1) = Cells(2, SA - 1) - Cells(2, SA)
f = Replace(f, "$", "")
f = "=" & Cells(2, SA - 1).Address & "-" & Cells(2, SA).Address
Cells(2, SA + 1).FormulaLocal = f
Ca m'a donné ceci sur le tableur. J'ai peut être mal placé le code f = Replace(f, "$", "") ?
=$G$2-$H$2
J'ai peut être mal placé le code f = Replace(f, "$", "") ?
Cordialement
Bonjour,
La ligne de ccm81 (salut au passage) doit être après
f = "=" & Cells(2, SA - 1).Address & "-" & Cells(2, SA).Address
f = Replace(f, "$", "")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai essayé, mais je n'y suis pas arrivé, c'est pour cela que j'ai redemandé de l'ai sur un sujet +/- similaire
Cordialement