Fichier Xla et ActiveCell dans une fonction: petit probleme

  • Initiateur de la discussion ludocavic
  • Date de début
L

ludocavic

Guest
Bonjour a tous et toutes,

Je vous explique un peu la situtation :
- je cherche a faire quelque chose « sans » vb, entendant donc que meme si l’utilisateur clique sur « desactiver » les macro, ca fonctionne quand meme
- je me tourne donc vers des functions perso que j’aurai enregistre en .xla et qui ne nécessiteront pas la question « activer ou non » les macro au demarrage.

Le but :
Il est tres simple. Dans mon fichier Xla, j’ai cree la function suivante :

Function ActCellDetect()

Application.Volatile
ActCellDetect = Application.ActiveCell.Address

End Function

Le but etant d’avoir une fonction dont le resultat est la reference cellule sur laquelle se trouve l’utilisateur
Dans le fichier de test, en A1 disons, je tape =ActCellDetect()

Probleme
Le seul probleme que j’ai est le suivant : « l’update » de ma fonction ne se fait pas lors d’un changement de selection mais lors d’un changement de valeur d’une cellule. En gros il faut soit faire F2 pour rentrer dans la cellule sur laquelle on a clique puis faire entrer, soit faire F9 apres avoir clique.


Ma question :
Comment faire pour que ma fonction se mette a jour en changeant seulement la selection (en cliquant quoi ;) ? J’ai essaye de force « dans la fonction xla » application.calculate, full et full rebuild mais ca marche pas…

Merci aux ames charitables…. :)

ludo
 
G

Guest

Guest
Re : Fichier Xla et ActiveCell dans une fonction: petit probleme

bonjour Ludo,

Le moyen le plus simple de faire ceci est de créer un nom (Insertion/Nom/définir) par exemple: CelluleActive et dans le code du workbook:

Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    ThisWorkbook.Names("CelluleActive").RefersTo = ActiveCell.Address
End Sub

ensuite tu peux dans n'importe quelle cellule du classeur mettre la formule =celluleActive

Ou transformer ta fonction comme ceci :
Code:
Function ActCellDetect()
  Application.Volatile
  ActCellDetect = ThisWorkbook.Names("celluleActive").RefersTo
End Function

Correction:Pour que cela fonctionne sur n'importe quel classeur il faut faire un module de class qui surveille constament le changement de cellule.
A bientôt
 
Dernière modification par un modérateur:
L

ludocavic

Guest
Re : Fichier Xla et ActiveCell dans une fonction: petit probleme

Merci Hasco pour la rapidite de la reponse,

Concernant le modul de class, cela n'implique t'il pas que l'utilisateur clique sur "activer les macros" au lancement du classeur?

Sinon, pour la solution Workbook_SheetSelectionChange, je veux faire sans etant donner que ca implique aussi la validation des macros par l'utilisateur

Merci bien! :)

Ludo
 

wilfried_42

XLDnaute Barbatruc
Re : Fichier Xla et ActiveCell dans une fonction: petit probleme

Bonjour

une solution par formule : tu te positionnes sur la cellule A1

Menu insertion / nom / définir

le nom : cellule active

la fonction : =Feuil1!A1 (Sans les dollards)
 
G

Guest

Guest
Re : Fichier Xla et ActiveCell dans une fonction: petit probleme

Ludo,

je suis parti de ta proposition du départ, à savoir une fonction dans un fichier xla qui permet d'afficher l'adresse de la cellule active dans un classeur sans validation des macros par l'utilisateur.

le fichier joint fonctionne suivant cette demande.

Le Zip contien le xla.

bonne soirée
 

Statistiques des forums

Discussions
312 816
Messages
2 092 361
Membres
105 378
dernier inscrit
y07