Faire référence à une cellule qui était active au lancement de la macro

AurelieGuillon

XLDnaute Nouveau
Bonjour à tous

je me pose un problème, et je n'ai pas trouvé la réponse sur le forum (si j'ai mal cherché, je vous demande pardon d'avance !)

Voilà ce que je veux faire :
j'ai une cellule active (mettons A1)
je lance une macro qui fait des ptites bidouilles (copie la valeur de cette cellule ailleurs, la modifie, etc...) disons que le résultat est dans Z10
ensuite, je voudrais copier le résultat de Z10 sur ma cellule A1.. mais celle ci n'est plus active car les bidouilles ont activé Z10... :(
et il est possible que je veuille faire cette manip sur A2, A3, A4 (en copiant toujours dans Z10, c'est une cellule tampon...)

en faites, si je veux faire tout ça, c'est que j'ai un énorme tableau, et je dois ajouter la fonction =ARRONDI.SUP() sur plein de cellulles, et j'aurais voulu une macro qui fasse ca au lieu de taper 100 fois "=arrondi.sup'", en placant le curseur au bon endroit, un truc long quoi...
d'où mon idée de passer par une cellule tampon, mais ya ptet plus simple...

J'espère que j'ai bien expliqué mon souci, et que l'un d'entre vous a une réponse :)

merci d'avance

Aurélie
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Faire référence à une cellule qui était active au lancement de la macro

Bonjour

peut-être 2 solutions

1 - ne pas faire de select la majeur partie des macros peuvent eviter le select

2 - en debut de macro
set toto = activecell
comme cela tu as la cellule active en variable toto
 

CBernardT

XLDnaute Barbatruc
Re : Faire référence à une cellule qui était active au lancement de la macro

Bonjour AurelieGuillon et le forum,

L'une des procédures possible est de mettre en mémoire l'adresse de la cellule de départ et en fin de macro d'y coller le résultat dedans tel que la macro ci-dessous :

Sub MémoireAdresse()
Dim Adresse As String

Adresse = ActiveCell.Address
Range(Adresse).Value = Range("G1").Value
End Sub


Cordialement

Bernard

Ouppss Bonjour PascalXLD
 

skoobi

XLDnaute Barbatruc
Re : Faire référence à une cellule qui était active au lancement de la macro

Bonjour,

Je soupsonne l'utilisation de .Select dans ton code.
Sache que Select est (malheureusement) souvent issue des macros d'enregistrement automatique.
Ceci ralentie considérablement une macro et en plus ça n'apporte rien au code.
Le réflexe à avoir c'est de supprimer les Select.
Exemple:

Code:
    Range("B5:D10").Select
    Selection.Copy
    Range("G5").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
Peut s'écrire
Code:
Range("B5:D10").Copy Range("G5")

autre exemple:
Code:
    Rows("12:12").Select
    Selection.Delete Shift:=xlUp
devient
Code:
Rows("12:12").Delete Shift:=xlUp

Et pour répondre à ta question:
je voudrais copier le résultat de Z10 sur ma cellule A1
Code:
Range("A1").Value = Range("Z10").Value
;)

Edit: oupppsss, colision, bonjour Bernard, Pascal :)
 

AurelieGuillon

XLDnaute Nouveau
Re : Faire référence à une cellule qui était active au lancement de la macro

merci pour toutes ces réponses
effectivement, j'avais identifié le problème du select, mais ne savais pas trop comment s'en affranchir...

En revanche, avez vous une idée pour mon problème initial, à savoir faire une macro qui insérerait une formule dans une cellule contenant déjà un calcul :
état intial : par exemple A1 contient "=10,1"
(exécution de la macro)
état final : A1 contient "=arrondi.sup(10.1;0)"

je sais bien qu'on peut faire un copié-collé de la formule, mais un raccourci clavier serait encore plus rapide pour moi....

Aller, sinon, je vais remplir le tableau à la main, ca ira ptet plus vite que de chercher la réponse pour gagner du temps, finalement ?! :p

merci pour votre aide en tout cas...
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 023
Messages
2 084 715
Membres
102 637
dernier inscrit
TOTO33000