Excel, fonction personnalisée & actualisation
bla
-
Skro -
Skro -
Bonjour,
J'ai créé une fonction sur excel, la voici :
Function LookAtLine(feuille, line, x, y)
LookAtLine = Sheets(feuille).Cells(line + y, x)
End Function
assez simple en effet,
La fonction fonctionne comme un charme à l'exception de la partie actualisation.
Si la valeur contenue dans la cellule cible change, la fonction ne s'en rend pas compte et ne modifie pas sa réponse.
pesser sur F9 ne change absolument rien.
sauvgarder et rouvrir le fichier excel non-plus.
je dois donc sélectionner chaque cellules, peser sur F2 et "enter".
comme j'ai des miliers de cellules utilisant cette fonction, c'est assez chiant si vous permettez l'expression.
est-ce que quelqu'un connais une solution pour mon problème ?
J'ai créé une fonction sur excel, la voici :
Function LookAtLine(feuille, line, x, y)
LookAtLine = Sheets(feuille).Cells(line + y, x)
End Function
assez simple en effet,
La fonction fonctionne comme un charme à l'exception de la partie actualisation.
Si la valeur contenue dans la cellule cible change, la fonction ne s'en rend pas compte et ne modifie pas sa réponse.
pesser sur F9 ne change absolument rien.
sauvgarder et rouvrir le fichier excel non-plus.
je dois donc sélectionner chaque cellules, peser sur F2 et "enter".
comme j'ai des miliers de cellules utilisant cette fonction, c'est assez chiant si vous permettez l'expression.
est-ce que quelqu'un connais une solution pour mon problème ?
A voir également:
- Excel, fonction personnalisée & actualisation
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Sonnerie personnalisée android - Guide
- Fonction moyenne excel - Guide
8 réponses
Bah, j'ai trouvé en surfant un peu plus.
il s'agit simplement d'insérer ces 3 lignes de codes au dessus de la fonction dans son module visual basic :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
J'espère que ca va aider quelqu'un d'autre.
Bonne journée
il s'agit simplement d'insérer ces 3 lignes de codes au dessus de la fonction dans son module visual basic :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
J'espère que ca va aider quelqu'un d'autre.
Bonne journée
Cette syntax semble avoir réglée le problème :
Sub Command1_Click() ' depuis un bouton exp...
LookAtLine
End Sub
Function LookAtLine(feuille, line, x, y)
Application.Volatile
Application.Volatile
LookAtLine = Sheets(feuille).Cells(line + y, x)
Application.Volatile
Calculate
End Function
...maintenant le script s'actualise automatiquement.
Sub Command1_Click() ' depuis un bouton exp...
LookAtLine
End Sub
Function LookAtLine(feuille, line, x, y)
Application.Volatile
Application.Volatile
LookAtLine = Sheets(feuille).Cells(line + y, x)
Application.Volatile
Calculate
End Function
...maintenant le script s'actualise automatiquement.
heeheheh
Quand l'approche logique ne donne aucun résultat, l'approche illogique est tout ce qu'il reste.
Cela-dit, tu as surement raison, une seule "Application.Volatile" devrait suffire.
(Dans l'hypothèse où cette fonction agit effectivement sur quelque chose)
Quand l'approche logique ne donne aucun résultat, l'approche illogique est tout ce qu'il reste.
Cela-dit, tu as surement raison, une seule "Application.Volatile" devrait suffire.
(Dans l'hypothèse où cette fonction agit effectivement sur quelque chose)
Salut le forum
Tu aurais pu faire aussi
Mytå
Tu aurais pu faire aussi
Function LookAtLine(feuille, line, x, y) Application.Volatile LookAtLine = Sheets(feuille).Cells(line + y, x) End Function
Mytå
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
N'oublie pas la sub commande d'actualisation
Sub Command1_Click()
LookAtLine
End Sub
je pense que c'est la seule chose qui affecte vraiment l'actualisation.
mais je pourrais me tromper.
Sub Command1_Click()
LookAtLine
End Sub
je pense que c'est la seule chose qui affecte vraiment l'actualisation.
mais je pourrais me tromper.
Re le forum
Pas besoin si tu écris ta fonction directement dans une cellule
=LookAtLine(feuille, line, x, y)
Tu devrais aussi t'habituer à déclarer tes variables
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Pas besoin si tu écris ta fonction directement dans une cellule
=LookAtLine(feuille, line, x, y)
Tu devrais aussi t'habituer à déclarer tes variables
Function LookAtLine(feuille As String, line As Integer, x As Byte, y As Byte) As String Application.Volatile True LookAtLine = Sheets(feuille).Cells(line + y, x) End Function
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
assez brochafoin.
grgrgrgrgr, ce que j'aime travailler avec des logiciel aussi bien codés.