VBA : faire une division dans une case avec des variables

Bonjour,

Je profite de ce confinement pour refaire quelques macros.

Je bloque finalement sur la dernière partie ou je souhaite faire une simple division dans la cellule.

Le problème c'est qu'il y a beaucoup de variable, ma feuille excel évolue avec un nombre de ligne et de colonne qui diffère.

Le début de mon code pour obtenir le min et le max fonctionne il n'y a que la partie division qui plante.

Merci de votre aide.

Dim nbLignes As Long, nbColonnes As Long

    With ActiveSheet
        nbLignes = .Cells(.Rows.Count, "C").End(xlUp).Row
        nbColonnes = .Cells(8, Columns.Count).End(xlToLeft).Column - 6  '-6 s'il y a des entêtes
        .Range(.Cells(9, nbColonnes + 3), .Cells(nbLignes, nbColonnes + 3)).Formula = _
                "=MIN(E9:" & Cells(9, nbColonnes).Address(False, False) & ")"
        .Range(.Cells(9, nbColonnes + 4), .Cells(nbLignes, nbColonnes + 4)).Formula = _
                "=MAX(E9:" & Cells(9, nbColonnes).Address(False, False) & ")"
        .Range(.Cells(9, nbColonnes + 5), .Cells(nbLignes, nbColonnes + 5)).Formula = _
                "=INDEX($E$8:" & .Cells(nbLignes, nbColonnes).Address(False, False) & _
                ",1,MATCH(" & .Cells(9, nbColonnes + 4).Address(False, False) & ",E9:" & .Cells(9, nbColonnes).Address(False, False) & ",0))"
                'partie division
  .Range(.Cells(9, nbColonnes + 6), .Cells(nbLignes, nbColonnes + 6)).Formula = _
        "=(Range(.Cells(9, nbColonnes + 4), .Cells(nbLignes, nbColonnes + 4)))" & " /" & "(Range(.Cells(9, nbColonnes + 1), .Cells(nbLignes, nbColonnes + 1)))"

    End With

bonjour,

quelle est la formule que tu veux mettre dans les cellules .Range(.Cells(9, nbColonnes + 6), .Cells(nbLignes, nbColonnes + 6)).Formula

 "=(Range(.Cells(9, nbColonnes + 4), .Cells(nbLignes, nbColonnes + 4)))" & " /" & "(Range(.Cells(9, nbColonnes + 1), .Cells(nbLignes, nbColonnes + 1)))"

la syntaxe n'est pas correcte, mais même en corrigeant cela donnerait quelque chose du genre

=(F9:F100)/(B9:B100)

je doute que ce soit la formule souhaitée. (=division matricielle)

Bonjour,

Je souhaite mettre une division entre

Range(.Cells(9, nbColonnes + 4), .Cells(nbLignes, nbColonnes + 4)

et

Range(.Cells(9, nbColonnes + 1), .Cells(nbLignes, nbColonnes + 1)

Je ne sais pas si il est possible de réduire ma fonction range qui intègre les variables...

De plus se ne sont que des plages de valeur, j'imagine que c'est plus complexe du coup

Bonjour,

au risque de me répéter,

ce que tu demandes va donner une formule du type (C1:C100)/(B1:100), j'ai un sérieux doute que ce soit la fonction que tu souhaites. (division matricielle, résultat dans 100 cellules différentes

peux-tu vérifier ta formule ?

c1/b1 puis c2/b2 etc

ou somme(c1:c100)/somme(b1:b100)

B1,C1 et B100,C100 sont des exemples je ne connais pas les valeurs qui seraient générées sur base de nblignes et nbcolonnes

Pardon , je n'avais pas compris la question.

Il s'agit bien de divisions de type (C1:C100)/(B1:B100) avec les résultats dans 100 cellules différentes.

bonjour,

Il s'agit bien de divisions de type (C1:C100)/(B1:B100) avec les résultats dans 100 cellules différentes.

dans ce cas

  .Range(.Cells(9, nbColonnes + 6), .Cells(nbLignes, nbColonnes + 6)).Formula = _
        "=(" & Range(.Cells(9, nbColonnes + 4), .Cells(nbLignes, nbColonnes + 4)).Address & ")/" & "(" & Range(.Cells(9, nbColonnes + 1), .Cells(nbLignes, nbColonnes + 1)).Address & ")"

ça fonctionne parfaitement.

Merci beaucoup !

Rechercher des sujets similaires à "vba division case variables"