Affecter une valeur à une cellule en vb

Résolu

Bonjour tout le monde,

je cherche à savoir comment on peut affecter une valeur à une cellule à l'aide de VB.

En gros, quand je suis dans une cellule d'une feuille qui s'appelle "Produits", je voudrais que la macro affecte la valeur 1 à la même cellule de la feuille qui s'appelle "Ventes".

Je suppose qu'on doit avoir quelque chose comme :

Worksheets("Ventes").Référence_de_la_cellule.Value = 1

Et c'est la syntaxe de la référence de cellule qui m'échappe totalement. Je pensais que ça serait simple - et ça l'est peut-être - mais je bloque.

Merci à celles et ceux qui prendront le temps de me répondre !


Windows / Firefox 108.0


Pourquoi se compliquer la vie à faire simple, quand c'est si simple de faire compliqué?

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci via55, mais dans ce cas ça sera toujours la cellule B3, or je veux que ça soit la même cellule que celle de la feuille "appelante".

    B3 si je suis en B3, mais C5 si je suis en C5... Et c'est là que je bloque


    1. Contributeur

      Bonjour

      Sub bbb()
      Dim ref As String
        ref = Sheets("Produits").ActiveCell.Address
        Sheets("Ventes").Cells(ref) = 1
      End Sub

      actuellement déclenchement  par boutop,

      nous dire si autre méthode de déclenchement

      bonjour Vja, bonne année


      1. Bonjour Michel et merci,

        mais Cells a l'air de demander des arguments de type RowIndex, ColumnIndex, et le ActiveCell.Address renvoie par exemple $F$22.

        Mais tu m'as mise sur la bonne voie quand même :

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim Nligne, NColonne As Integer
          NLigne = ActiveCell.Row
          NColonne = ActiveCell.Column
          Sheets("Ventes").Cells(NLigne, NColonne) = 1
          Cancel = True
        End Sub

        Et ça fonctionne. Merci, donc !

        LatelyGeek


        1. Contributeur

          Ça marche mais pourquoi faire simple quand on peut faire complqué !...


          1. J'ai testé ta solution, mais elle provoquait une erreur...

            Si je laissais le nom de la feuille, le message était "Propriété ou méthode non gérée par cet objet" et Ref était égal à ""

            et si je laissais juste Ref = ActiveCell.Adress c'était "Argument ou appel de procédure incorrect" puisque la valeur de Ref était de type "$B$9"

            J'ai mal fait quelque chose ?

        2. Contributeur

          j'avais testé avant de poster (XL 2007)  et c'était OK....

          bon, si ca marche chez toi, garde ta soluce ;-)

          au passage: bonne année !


          1. J'ai 365... Bon, enfin en tout cas c'est grâce à tes lumières que j'ai trouvé une solution, donc encore merci et bonne année à toi aussi !!!

        3. Et j'ai une dernière question bête : Où est passé le bouton "Marqué comme résolu" ?


          1. Contributeur

            Bonjour à tous,

            michel, j'ai aussi un soucis avec ta syntaxe sur 2021.

            Pour faire plus court :
             

            Sheets("Ventes").Range(ActiveCell.Address) = 1

            Bonnes fêtes de fin d'année à tous
            eric


            1. Voilà, je savais qu'il existait une solution simple, élégante et épurée. Merci et bonnes fêtes de fin d'année !