Variable invariable
db
-
Le Pingou Messages postés 12713 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12713 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Variable invariable
- Vba range avec variable ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable objet ou bloc "with" non définie - Forum VB / VBA
5 réponses
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 ?
à 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 ?
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...
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 .....?
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 .....?
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.