Je désire comprendre au moyen d'un exemple concret l'utilisation de la
fonction relative et absolue dans la création d'une macro commande au moyen
d'Excel 2000.
Merci de m'aider....
Puis une seconde que tu appelles RefRelative.
Tu vas enregistrer exactement la même chose, mais APRES avoir cliqué sur la
petite icône Référence relative.
Tu verras facilement à l'exécution la différence entre les deux :
La première te renverra toujours dans la cellule A3 (si tu étais descendu
sur la cellule A3 pendant l'enregistrement).
La seconde te descendre d'une cellule par rapport à l'endroit où tu es au
moment où tu exécutes la macro.
Et le code est bien sûr différent aussi :
Range("A3").Select 'en absolu
ActiveCell.Offset(1,0).Range("A1").Select 'en relatif
Que tu peux d'ailleurs facilement remplacer par
ActiveCell.Offset(1,0).Select
Et si tu veux savoir ce que vient faire le Range("A1") qui ne sert
apparemment à rien, exécute ça :
ActiveCell.Offset(1,0).Range("A1:B2").Select
---
Gros bisous, Kenavo (et Miaou).
Catherine (et Sainte Zaza)
Monique Brahier <mon...@cfi.ch> a écrit dans le message :
uq3mV223$GA.270@cppssbbsa04...
Catherine a écrit dans le message ...
Sabatier <jps...@club-internet.fr> a écrit dans le message :
39578B60...@club-internet.fr...
Sabatier <jps...@club-internet.fr> a écrit dans le message :
3957B6D7...@club-internet.fr...
Ca me donne bien un joyeux mélange de relatif et absolu ?
> ce que je veux, c'est :
> me positionner en A9 et lancer la macro pour obtenir
> en B1 le paste de A9:A12
> et en C1 le paste de A13:A16
Ben oui mais lequel doit être relatif ?
> ce n'est sûrement pas à toi christian que je vais dire "do you see what
> I mean" mais je ne connais pas le patois lorrain
Moi non plus si ça peut te rassurer (et guère mieux l'Anglais!), juste
quelques expressions ou mots !
Tiens, un au hasard qui surprend les non-Lorrains et leur surprise...
Surprend les Lorrains convaincus qu'ils sont que le mot est issu du
Français usuel:
"cornet" au lieu de sachet ex:
<< un cornet de bonbons >>
Allez, encore un qui m'amuse:
lorsqu'un chien voit un chat, il a le poil qui se dresse sur le dos;
mais il n'y a pas de verbe français pour décrire cela. En patois, on dit
(à propos du chien):
il "heurse" !
Je pense que ça vient de << hirsute >>?
Sabatier a écrit :
>
> non ce que je veux dire c'est que si tu commences par une sélection de
> cellules relatives puis par la sélection d'une cellule absolue puis à
> nouveau par des cellules relatives, ton offset se fera par rapport à ta
> cellule absolue et non pas par rapport à ta première sélection de
> cellules relatives
J'ai été moi aussi déstabilisé en passant du langage XL4 à VBA à propos
des références; ce à quoi tu fais allusion me semble être d'avantage une
"mauvaise habitude" acquise par l'obligation de se placer sur une
cellule pour la traiter(XL4). En VBA, j'utilise beaucoup les variables
en guise de références comme l'explique Catherine dans son dernier
message.
> et je trouve cela bien ennuyeux j'ai besoin de repartir sur des cellules
> relatives par rapport aux relatives précédentes avec des absolues
> entrelardées
Peux-tu donner un exemple ?
--
____________________________________________
/
Christian Herbé /
Centre INRA de Nancy /
UMR ENGREF-INRA Ressources Forêt-Bois /
F-54280 CHAMPENOUX ||
phone: 03.83.39.40.59 \
Fax: 03.83.39.40.69 \
mailto:he...@nancy.inra.fr \
___________________________________________\
ce que je veux, c'est :
me positionner en A9 et lancer la macro pour obtenir
en B1 le paste de A9:A12
et en C1 le paste de A13:A16
ce n'est sûrement pas à toi christian que je vais dire "do you see what
I mean" mais je ne connais pas le patois lorrain
à signaler que si je paste (asciute ou pas asciute) dans la feuille 2,
j'obtiens bien ce que je souhaite
à + et merci pour toute réponse
cordialement
jps (du gouleyant beaujolais)
Sabatier a écrit dans le message <39578B60...@club-internet.fr>...
>très belle explication, catherine et un grand merci (exceptionnellement
>pas à laurent qui, lui, ne travaille pas au taupe niveau de VBA)
>mais je me (te) (vous) pose une question : je crois me souvenir que les
>macros Excel 4 permettaient de mélanger réf aboslues et réf relatives ;
>je n'y suis jamais parvenu en VBA, clique que clique sur l'icône de la
>barre d'outils de l'enregistement
>serait-ce une nouvelle fois une erreur de mes sens abusés (en d'autres
>termes, je suis c...ou quoi)?
>merci à celui qui me donnera une réponse, même si elle se limite à un
>mot
>cordialement
>jps (du gouleyant beaujolais)
>
Monique Brahier a écrit:
Toujours est-il qu'il me semble que le problème vient de ce que la macro
perd la notion de "cellule de départ". Je tente de m'expliquer :
tu cliques sur A1 : Range("A1").Select
tu copies A1:A4 : ActiveCell.Range("A1:A4").Copy
tu passes en références absolues
tu cliques sur B1 : Range("B1").Select
tu colles : ActiveSheet.Paste
tu repasses en références relatives et je pense que là est le problème : il
ne connait plus la cellule de départ, et il faut donc recliquer sur la
première cellule AVANT de repasser en références relatives :
Range("A1").Select
tu copies A5:A8 : ActiveCell.Range("A5:A8").Copy
tu passes en références absolues
tu cliques sur C1 : Range("C1").Select
tu colles : ActiveSheet.Paste
C'est pourtant simple, non ? ;-))
Il me semble que le code simplifié (et allégé) pourrait donner qqch de ce
genre :
ActiveCell.Range("A1:A4").Copy
With ActiveSheet
.Paste Destination:=.Range("B1")
End With
ActiveCell.Range("A5:A8").Copy
With ActiveSheet
.Paste Destination:=.Range("C1")
End With
Application.CutCopyMode = False
Et voilà la démonstration que ne raconte pas QUE des conneries : j'en fais
aussi !
Jean-Paul, dis-moi : alors, heuuuuuuuuureuuuuuuuuuuuux ?
PS : message perso aux dineurs : vous allez me manquer ;-)
Nicolas. (Relativement absolu, absolument relatif)
Sabatier <jps...@club-internet.fr> a écrit dans le message :
3958D203...@club-internet.fr...