Variable invariable

Bonjour,
je cherche comment faire une variable qui puisse garder la même valeur tout au long de la macro, sachant que cette variable doit être la valeur de la 1ère cellule qui est activée dans la macro
Configuration: Windows XP
Firefox 2.0.0.12

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour !
    à partir du moment où tu as attribué une valeur à ta variable, elle gardera cette même valeur tout au long de la macro tant qu'aucune instruction ne vient la modifer.
    Une fois que la cellule en question est activée, rajoute simplement :

    Dim Nomdelavariable
    Nomdelavariable = ActiveCell.Value

    est ce que ça te convient ?
    1. et bien c'est ce que j'ai fait, mais il y a un hic: ma variable représente donc ActiveCell.Value au début de la macro et me sert à faire une recherche,et quand je la rappelle, la cellule active n'étant plus la même à ce moment là, ma variable change de valeur, ce qui me fausse tout, tu comprends ? Et je n'arrive pas à résoudre ça...
      1. Bonjour db,
        Pouvez-vous mette une copie de votre macro et indiquer le nom de la variable concernée?
        Question: vous rappelez la variable dans la même macro .....?
        1. Finalement j'ai laissé tomber cette macro, mais ça me chagrine quand même cette histoire donc je vais expliquer en gros (ça m'énervait tellement que j'ai effacé tout mon code !!! je sais: c'est idiot)

          ma macro au départ devait sélectionner une feuille, puis une certaine cellule puis la valeur de cette cellule devait être récupérée dans une variable (pour s'en servir en boucle) Seulement après, au cours de la macro, la cellule active changeait et donc la variable code changeait de valeur aussi or j'avais besoin de rappeler la première valeur et non la dernière. C'est ça qui m'ennuyait. Je n'ai pas trouvé de solution...
          1. Bonjour db,
            Dommage pour le code...
            En principe une variable doit être définie au débute du code ... exemple: nLi est ma variable ..

            Sub MAJ_EvoReBu(nuCode, nvTxt)
            ' Macro enregistrée le 30.11.2007 par Jean-Pierre Purro
            Dim nLi As Integer

            Selection.Find(What:=derCode).Offset(0, 0).Select
            nLi = ActiveCell.Row
            Selection.EntireRow.Insert

            Range(Cells(nLi + 1, 1), Cells(nLi + 1, 6)).Select
            Selection.Cut
            Range(Cells(nLi + 0, 1), Cells(nLi + 0, 6)).Select
            Selection.Insert Shift:=xlDown

            Cells(nLi + 1, 1) = nuCode
            Cells(nLi + 1, 3) = nvTxt
            Range(Cells(nLi + 0, 4), Cells(nLi + 0, 6)).Select
            Selection.AutoFill Destination:=Range(Cells(nLi + 0, 4), Cells(nLi + 1, 6)), Type:=xlFillDefault

            End Sub

            Dans cette macro elle aura toujours la même valeur.

            Bonne fin de journée.