XL 2013 soustraction VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Kidcarotte

XLDnaute Junior
Bonjour a tous

J'ai vu un bon nombre de suggestion sur cette fonction, mais je les trouves toutes tres compliquer pour ce que je recherche
Je tente donc ma chance sur un poste independant.

Chaque semaine un rapport est fait. La quantite de ligne dans le rapport change a chaque fois (2000 - 3000 - 6000 etc..)
Je voudrais faire la soustraction de deux colonnes dans la feuille 1, et affiche le resultat en feuille 2.
Sur cette feuille il n'y a que une dizaine de valeur, donc le Sheet1.Cells["A18:B50"] ne m'interesse pas car trop precis.. Mais je n'ai pas envie d'utilise le Sheet1.Cells("A1:B6000")

Je suis a la recherche de quelques chose comme Sheet2.Range("R").End(xlDown) = Sheet1.Range("B").End(xlDown) - Sheet1.Range("C").End(xlDown)

J'ai attache un petit excel de ce que je recherche a faire

Si vous avez des suggestions je suis preneuse !

Merci beaucoup
 

Pièces jointes

Alors oui ca a l'air d'etre ca mais j'ai le droit a un erreur Mismatch, je ne comprends pas

S2.Range("Q" & Range("Q" & Rows.Count).End(xlUp).Row) = S1.Range("R" & Range("R" & Rows.Count).End(xlUp).Row) - S1.Range("S" & Range("S" & Rows.Count).End(xlUp).Row)

(S2 et S1 sont set en debut de macro au Sheet respective)

1580301668047.png
 
Re,

Ici je dis que la toute dernière ligne du tableau (en Q) est égale à la valeur en R de la dernière ligne de la feuille 1 - la valeur en S de la dernière ligne de la feuille 1.
Si les dernières valeurs ne sont pas des nombres, ça pourrait poser problème. Par exemple une ligne de fin de tableau pour l'esthétique, ou je ne sais quoi d'autre.
Autre remarque, on va insérer sur la deuxième feuille une valeur dans la dernière cellule de la colonne Q. Sauf que ça veut dire que cette cellule contient déjà quelque chose, donc il conviendrait plutot de dire End(xlUp).Row + 1

Bonne continuation
 
Bonjour à tous,
L'exemple est en fonction du fichier joint
La mise à jour se fait à la sélection de la feuille "Sheet2"
Code à placer dans le module de la feuille "Sheet2"
VB:
Private Sub Worksheet_Activate()
Dim Derlg&
Derlg = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row
With Sheets("Sheet2")
.Range("i2:i" & .Rows.Count).Clear
.Range("i2:i" & Derlg).Formula = "=Sheet1!a2-Sheet1!d2"
.Range("i2:i" & Derlg).Value = .Range("i2:i" & Derlg).Value
End With
End Sub
 

Pièces jointes

Dernière édition:
Bonjour.
J'aurais fait :
VB:
Sub test()
   Dim RngSrc As Range
   Set RngSrc = Intersect(Feuil1.[2:1000000], Feuil1.UsedRange)
   Intersect(Feuil2.[I2:I100000], Feuil2.UsedRange).ClearContents
   Feuil2.[I2].Resize(RngSrc.Rows.Count).FormulaR1C1 = "=" _
      & RngSrc(0, 1).Address(False, True, xlR1C1, True) & "-" _
      & RngSrc(0, 4).Address(False, True, xlR1C1, True)
   End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
371
Réponses
4
Affichages
671
Réponses
3
Affichages
1 K
Retour