Probleme macro changement de cellule active

Bonjour,

Je cherche a realiser une macro (normalement assez simple) sur excel
A partir de la cellule selectionnée je voudrais
- enregistrer sa valeur
- mettre la valeur 0 en rouge et en gras dans cette cellule
- dans la cellule situé à 2 colonnes a droites et 8 lignes en dessous ajouter la valeur "stock" correspondant à la valeur de la cellule de depart
j'ai ecris le programme suivant : (erreur au niveau de l'avant derniere ligne disant : "variable objet ou bloc non etabli")

Dim STK As Integer
Dim cellstock As CellFormat

If ActiveCell.Value = 2 Then
STK = 1600
End If
If ActiveCell.Value = 3 Then
STK = 2400
End If

Selection.Font.Bold = True
Selection.Font.ColorIndex = 3
ActiveCell.FormulaR1C1 = 0

LigneAct = ActiveCell.Row + 7
ColAct = ActiveCell.Column + 2

cellstock(LigneAct, ColAct).FormulaR1C1 = "=R[-2]C-'ventas simu'!R[-3]C[-1]+ 1600"cellstock(LigneAct, ColAct).Interior.ColorIndex = 39

merci beaucoup d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    tu peux utiliser .offset(ligne,colonnes) qui te fait un décalage.
    ex:
    activecell.offset(7,2).value = stk
    ou
    activecell.offset(7,2).formula = ... (ta formule est un peu incompréhensible, dis précisément ce que tu veux y mettre, j'ai plus l'impression que c'est une valeur calculée et non une formule)
    ou si tu veux la sélectionner :
    activecell.offset(7,2).select

    eric
    1. Dim STK As Integer
      Dim cellstock As CellFormat

      If ActiveCell.Value = 2 Then
      STK = 1600
      End If
      If ActiveCell.Value = 3 Then
      STK = 2400
      End If

      Selection.Font.Bold = True
      Selection.Font.ColorIndex = 3
      ActiveCell.FormulaR1C1 = 0

      LigneAct = ActiveCell.Row + 7
      ColAct = ActiveCell.Column + 2

      ActiveSheet.Cell(LigneAct, ColAct).FormulaR1C1 = "=R[-2]C-'ventas simu'!R[-3]C[-1]+ 1600"
      ActiveSheet.Cell(LigneAct, ColAct).Interior.ColorIndex = 39