XL 2016 multiplier et diviser des colonnes en vba

MR.O

XLDnaute Junior
Bonjour,

Je souhaiterais multiplier la colonne L par la colonne AU et divisé par la colonne G et inscrire ce résultat dans la colonne AW pour 170 000 lignes.

Merci d'avance,

Cordialement,
 

Pièces jointes

  • VBA finaleV2 - Copie.xlsm
    21.3 KB · Affichages: 8
Solution
Bonjour,

Je souhaiterais multiplier la colonne L par la colonne AU et divisé par la colonne G et inscrire ce résultat dans la colonne AW pour 170 000 lignes.

Merci d'avance,

Cordialement,
Bonjour à tous
La macro pourrait ressembler à ceci
VB:
Sub calcul()
    With Feuil1.Range("AW2:aw" & Feuil1.Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        .Formula = "=l2*au2/g2"
        .Value = .Value
    End With
End Sub

LeSaintKebab

XLDnaute Nouveau
Bonjour,

Je souhaiterais multiplier la colonne L par la colonne AU et divisé par la colonne G et inscrire ce résultat dans la colonne AW pour 170 000 lignes.

Merci d'avance,

Cordialement,
Bonjour @MR.O,

Petite question afin d'aider au mieux, est-ce que le nombre de lignes est variable ou restera-t-il à 170 000 ?
Aussi, est-ce qu'il y a plusieurs feuilles ?
Si oui, quelle est le nom de celle sur laquelle vous souhaitez travailler ?

En attendant vos réponses.

Cordialement,
LSK
 

Jacky67

XLDnaute Barbatruc
Bonjour,

Je souhaiterais multiplier la colonne L par la colonne AU et divisé par la colonne G et inscrire ce résultat dans la colonne AW pour 170 000 lignes.

Merci d'avance,

Cordialement,
Bonjour à tous
La macro pourrait ressembler à ceci
VB:
Sub calcul()
    With Feuil1.Range("AW2:aw" & Feuil1.Cells.Find("*", , , , xlByRows, xlPrevious).Row)
        .Formula = "=l2*au2/g2"
        .Value = .Value
    End With
End Sub
 

vgendron

XLDnaute Barbatruc
bonjour

et pourquoi ne pas mettre directement une formule dans la colonne ??
sinon
VB:
Sub test()

Dim TabData() As Variant
With ActiveSheet
    fin = .Range("AV" & .Rows.Count).End(xlUp).Row
    TabData = .Range("A1:AW" & fin).Value
    For i = LBound(TabData, 1) + 1 To UBound(TabData, 1)
        TabData(i, 49) = TabData(i, 12) * TabData(i, 47) / TabData(i, 7)
    Next i
    .Range("A2:AW" & fin) = TabData
End With
End Sub
 

LeSaintKebab

XLDnaute Nouveau
Re,

Voici une simple formule retranscrite en VBA qui s'adaptera au nombre de lignes présentes en G.

VB:
Sub ProduitEtDivision()

    Dim dl As Long
    dl = ActiveSheet.Cells(Application.Rows.Count, 7).End(xlUp).Row
    
    ActiveSheet.Range("AW2:AW" & dl).FormulaR1C1 = "=RC12*RC47/RC7"

End Sub

Cordialement,
LSK
 

vgendron

XLDnaute Barbatruc
Correction de mon code
VB:
Sub test()

Dim TabData() As Variant
With ActiveSheet
    'fin = .Range("AV" & .Rows.Count).End(xlUp).Row
    fin = .UsedRange.Rows.Count
    TabData = .Range("A1:AW" & fin).Value
    For i = LBound(TabData, 1) + 1 To UBound(TabData, 1)
        TabData(i, 49) = TabData(i, 12) * TabData(i, 47) / TabData(i, 7)
    Next i
    .Range("A1:AW" & fin) = TabData
End With
End Sub
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Allez hop .... ma version 🤣

VB:
Sub MaFormule()
Application.ScreenUpdating = False
Dim Derlig&
Derlig = Worksheets("T_Cartographie").Range("L" & Rows.Count).End(xlUp).Row
[AW2].FormulaLocal = "=(L2*AU2)/AU2"
[AW2].AutoFill Destination:=Range("AW2:AW" & Derlig), Type:=xlFillDefault
End Sub

@Phil69970
 

vgendron

XLDnaute Barbatruc
Perso, je trouve bizarre d'avoir besoin d'un code pour ecrire une formule aussi simple....
en manuel (sans vba) il suffirait
1) d'écrire la formule en AW2
2) double clic sur le coin inférieur droit de la cellule AW2 pour que la formule soit recopiée jusqu'en bas..
 

Deadpool_CC

XLDnaute Accro
Bonjour,
Le faire en vba n'est pas plus rapide que mettre le formule directement dans la colonne ... pas compris l'intérêt mais après il a peut-être une contrainte pour éviter que les gens modifient ...

[edit]
ps : pense à passer le post qui répond le mieux à ta demande comme étant la solution (coche ronde dans la colonne grise à droite du post concerné)

c'est fait ... lol
[/edit]
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet