OVH Cloud OVH Cloud

DECALER le contenu d'une cellule

18 réponses
Avatar
Archimède
Bonjour
Comment puis-je, à l'aide d'une fonction, décaler le contenu d'une cellule
dans une cellule voisine?
Merci

8 réponses

1 2
Avatar
Sitting Hoax
Bonsoir,
un peu confuses tes explications non ?
Il faut essayer dêtre précis dès la première question, et non poser des
devinettes
style poupées russes.
Ce n'est pas un accès d'humeur note bien, mais tu es sur un forum ou
tout le monde se casse la tête à essayer de comprendre de quoi il s'agit,
toujours avec bonne volonté, et tu leur distilles à petite dose des détails
qui modifient leurs solutions.
En gros, tu voulais une macro dès le départ, suffisait de le dire,
Par expérience, nous avons l'impression que
tu compliques inutilement ton fichier en passant par des macros mais bon...

Ne penses tu pas qu'une petite formule dans les cellules aurait suffi ?

D'après ce que je lis, B1²³´
donc, (toujours d'après B2±, B3², B4³)
SI A1 = 1
B2 : B(x) = B1
Je ne vois pas pourquoi tu ne mets pas dans chaque cellule de la colonne B
à partir de B2
=SI($A$1=1;$B$1;"")

dans ce cas précis la macro évènementielle tourne en boucle, car à chaque
fois qu'une cellule est remplie, la macro se relance.
Envoie ta feuille par http://www.cijoint.fr/
nous verrons ce qu'il est possible d'améliorer.
et mets le lien ici, qu'on puisse comprendre exactement le problème.

Amicalement
Siesting Hoax

"Archimède" a écrit dans le message de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle






Avatar
LSteph
Bonsoir,

Je me joins à Modeste, Siesting et Isabelle.

Tu t'es exprimé aussi clairement que les réponses qui t'ont été données
mais ce n'est pas du tout comme cela qu'excel fonctionne .
Une formule ne donne pas d'instructions à de déplacement d'autres cellules.
Une formule d'une cellule sert à renvoyer un résultat dans cette même
cellule.

S'il est besoin d'insister.

Cordialement.

--
lSteph





Merci Siesting, mais j'ai dû mal m'exprimer, donc je précise:
dans A1 par exemple , je place une formule qui dit que la cellule voisine
(A2 en l'occurence) doit récupérer le contenu d'une autre cellule (A7 par
exemple).
Merci



Bonjour,
en B1 inscris
¡ par exemple.
Amicalement
Siesting Hoax

"Archimède" a écrit dans le message de
news:
Bonjour
Comment puis-je, à l'aide d'une fonction, décaler le contenu d'une
cellule
dans une cellule voisine?
Merci








Avatar
Mgr.Abile
Bonsoir,
Si le Saint Esprit a bien compris, ce pourrait être :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then
If [a1] = 1 Then
deRLig = Range("b6543").End(xlUp).Row
Range("b1:b" & deRLig).Copy
Range("b2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End If
End Sub

--
News://news.microsoft.com/microsoft.public.fr.excel
Allez en paix
T.Abile
"Archimède" a écrit dans le message de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle






Avatar
Archimède
Tout d'abord, merci de m'avoir répondu.
Ensuite mille excuses d'avoir compliqué les choses, mais mon idée au départ
était de m'en sortir avec une fonction, chose que je maitrise "à peu près" et
non de partir sur une macro, chose que je ne maitrise pas. C'est un peu
pourquoi j'avais simplifié, à tort, et j'en suis confus.
J'avais bien envisagé dans un premier temps une solution avec une formule du
type de celle que tu proposes, mais cela va nécessiter des centaines et des
centaines de cellules à copier/coller. Le forum m'a convaincu que la solution
passait par des macros.....je crois donc que je vais me mettre au VB, enfin
je vais essayer!
En attendant, j'accepte ta proposition d'étudier mon PB sur un fichier
exemple, hébergé à l'adresse suivante:
http://www.cijoint.fr/cjlink.php?file=cj200804/cij88ijWxk.xls.
Le descriptif du PB est sur le premier onglet.
Merci d'avance à tous.


Bonsoir,
un peu confuses tes explications non ?
Il faut essayer dêtre précis dès la première question, et non poser des
devinettes
style poupées russes.
Ce n'est pas un accès d'humeur note bien, mais tu es sur un forum ou
tout le monde se casse la tête à essayer de comprendre de quoi il s'agit,
toujours avec bonne volonté, et tu leur distilles à petite dose des détails
qui modifient leurs solutions.
En gros, tu voulais une macro dès le départ, suffisait de le dire,
Par expérience, nous avons l'impression que
tu compliques inutilement ton fichier en passant par des macros mais bon...

Ne penses tu pas qu'une petite formule dans les cellules aurait suffi ?

D'après ce que je lis, B1²³´
donc, (toujours d'après B2±, B3², B4³)
SI A1 = 1
B2 : B(x) = B1
Je ne vois pas pourquoi tu ne mets pas dans chaque cellule de la colonne B
à partir de B2
=SI($A$1=1;$B$1;"")

dans ce cas précis la macro évènementielle tourne en boucle, car à chaque
fois qu'une cellule est remplie, la macro se relance.
Envoie ta feuille par http://www.cijoint.fr/
nous verrons ce qu'il est possible d'améliorer.
et mets le lien ici, qu'on puisse comprendre exactement le problème.

Amicalement
Siesting Hoax

"Archimède" a écrit dans le message de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle











Avatar
Archimède
Désolé Monseigneur, mais ta proposition fait décaler d'une cellule vers le
bas l'ensemble des valeurs de la colonne B, ce qui n'est pas le but
recherché. J'ai précisé ma question dans mon message précédent à Sitting Hoax.
Meci beaucoup d'avoir essayé.



Bonsoir,
Si le Saint Esprit a bien compris, ce pourrait être :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then
If [a1] = 1 Then
deRLig = Range("b6543").End(xlUp).Row
Range("b1:b" & deRLig).Copy
Range("b2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End If
End Sub

--
News://news.microsoft.com/microsoft.public.fr.excel
Allez en paix
T.Abile
"Archimède" a écrit dans le message de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle









Avatar
Sitting Hoax
Ben voilà, c'est plus clair

lorsque la ligne "X" de la colonne B est en grisé, tout ce qu'il y aura en
dessous, jusqu'à la dernière ligne avant le prochain grisé devra contenir le
mot qu'il y a en "X".
je comprends que cela n'allait pas avec des formules, puisque le mot en
grisé était en "dur", et la formule l'effaçait si on l'incrémentait.
Cette macro marche très bien
J'ai ajouté la ligne qui colore tes cellules en blanc, ça rectifiera tes
essais ;-)
cans ma macro, je teste colonne D s'il n'y a rien.

Sub LIGNES()
On Error Resume Next
For i = 2 To 1000
If Range("D" & i).Value = "" Then
x = Range("B" & i).Value
Y = Range("C" & i).Value
GoTo suite
End If
Range("B" & i).Value = x
Range("C" & i).Value = Y
Range("B" & i).Interior.ColorIndex = xlNone
Range("c" & i).Interior.ColorIndex = xlNone
suite:
Next
End Sub

Amicalement
Siesting Hoax




"Archimède" a écrit dans le message de
news:
Tout d'abord, merci de m'avoir répondu.
Ensuite mille excuses d'avoir compliqué les choses, mais mon idée au
départ
était de m'en sortir avec une fonction, chose que je maitrise "à peu près"
et
non de partir sur une macro, chose que je ne maitrise pas. C'est un peu
pourquoi j'avais simplifié, à tort, et j'en suis confus.
J'avais bien envisagé dans un premier temps une solution avec une formule
du
type de celle que tu proposes, mais cela va nécessiter des centaines et
des
centaines de cellules à copier/coller. Le forum m'a convaincu que la
solution
passait par des macros.....je crois donc que je vais me mettre au VB,
enfin
je vais essayer!
En attendant, j'accepte ta proposition d'étudier mon PB sur un fichier
exemple, hébergé à l'adresse suivante:
http://www.cijoint.fr/cjlink.php?file=cj200804/cij88ijWxk.xls.
Le descriptif du PB est sur le premier onglet.
Merci d'avance à tous.


Bonsoir,
un peu confuses tes explications non ?
Il faut essayer dêtre précis dès la première question, et non poser des
devinettes
style poupées russes.
Ce n'est pas un accès d'humeur note bien, mais tu es sur un forum ou
tout le monde se casse la tête à essayer de comprendre de quoi il s'agit,
toujours avec bonne volonté, et tu leur distilles à petite dose des
détails
qui modifient leurs solutions.
En gros, tu voulais une macro dès le départ, suffisait de le dire,
Par expérience, nous avons l'impression que
tu compliques inutilement ton fichier en passant par des macros mais
bon...

Ne penses tu pas qu'une petite formule dans les cellules aurait suffi ?

D'après ce que je lis, B1²³´
donc, (toujours d'après B2±, B3², B4³)
SI A1 = 1
B2 : B(x) = B1
Je ne vois pas pourquoi tu ne mets pas dans chaque cellule de la colonne
B
à partir de B2
=SI($A$1=1;$B$1;"")

dans ce cas précis la macro évènementielle tourne en boucle, car à chaque
fois qu'une cellule est remplie, la macro se relance.
Envoie ta feuille par http://www.cijoint.fr/
nous verrons ce qu'il est possible d'améliorer.
et mets le lien ici, qu'on puisse comprendre exactement le problème.

Amicalement
Siesting Hoax

"Archimède" a écrit dans le message
de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement
mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle













Avatar
Archimède
Impressionnant de chez Impressionnant ! Je savais que le Bon Dieu était
descendu sur terre, mais je ne savais pas qu'il avait une annexe sur le NET à
une portée de clic.
Je vais me former au langage macro et je crois que ton programme sera un bon
exemple pour démarrer et "comprendre".
ENORME remerciement à toi et à tous ceux qui se sont penchés sur ce PB.
Sincères amitiés d'Archimède et bonne journée à tous.


Ben voilà, c'est plus clair

lorsque la ligne "X" de la colonne B est en grisé, tout ce qu'il y aura en
dessous, jusqu'à la dernière ligne avant le prochain grisé devra contenir le
mot qu'il y a en "X".
je comprends que cela n'allait pas avec des formules, puisque le mot en
grisé était en "dur", et la formule l'effaçait si on l'incrémentait.
Cette macro marche très bien
J'ai ajouté la ligne qui colore tes cellules en blanc, ça rectifiera tes
essais ;-)
cans ma macro, je teste colonne D s'il n'y a rien.

Sub LIGNES()
On Error Resume Next
For i = 2 To 1000
If Range("D" & i).Value = "" Then
x = Range("B" & i).Value
Y = Range("C" & i).Value
GoTo suite
End If
Range("B" & i).Value = x
Range("C" & i).Value = Y
Range("B" & i).Interior.ColorIndex = xlNone
Range("c" & i).Interior.ColorIndex = xlNone
suite:
Next
End Sub

Amicalement
Siesting Hoax




"Archimède" a écrit dans le message de
news:
Tout d'abord, merci de m'avoir répondu.
Ensuite mille excuses d'avoir compliqué les choses, mais mon idée au
départ
était de m'en sortir avec une fonction, chose que je maitrise "à peu près"
et
non de partir sur une macro, chose que je ne maitrise pas. C'est un peu
pourquoi j'avais simplifié, à tort, et j'en suis confus.
J'avais bien envisagé dans un premier temps une solution avec une formule
du
type de celle que tu proposes, mais cela va nécessiter des centaines et
des
centaines de cellules à copier/coller. Le forum m'a convaincu que la
solution
passait par des macros.....je crois donc que je vais me mettre au VB,
enfin
je vais essayer!
En attendant, j'accepte ta proposition d'étudier mon PB sur un fichier
exemple, hébergé à l'adresse suivante:
http://www.cijoint.fr/cjlink.php?file=cj200804/cij88ijWxk.xls.
Le descriptif du PB est sur le premier onglet.
Merci d'avance à tous.


Bonsoir,
un peu confuses tes explications non ?
Il faut essayer dêtre précis dès la première question, et non poser des
devinettes
style poupées russes.
Ce n'est pas un accès d'humeur note bien, mais tu es sur un forum ou
tout le monde se casse la tête à essayer de comprendre de quoi il s'agit,
toujours avec bonne volonté, et tu leur distilles à petite dose des
détails
qui modifient leurs solutions.
En gros, tu voulais une macro dès le départ, suffisait de le dire,
Par expérience, nous avons l'impression que
tu compliques inutilement ton fichier en passant par des macros mais
bon...

Ne penses tu pas qu'une petite formule dans les cellules aurait suffi ?

D'après ce que je lis, B1²³´
donc, (toujours d'après B2±, B3², B4³)
SI A1 = 1
B2 : B(x) = B1
Je ne vois pas pourquoi tu ne mets pas dans chaque cellule de la colonne
B
à partir de B2
=SI($A$1=1;$B$1;"")

dans ce cas précis la macro évènementielle tourne en boucle, car à chaque
fois qu'une cellule est remplie, la macro se relance.
Envoie ta feuille par http://www.cijoint.fr/
nous verrons ce qu'il est possible d'améliorer.
et mets le lien ici, qu'on puisse comprendre exactement le problème.

Amicalement
Siesting Hoax

"Archimède" a écrit dans le message
de
news:
OUI, merci Isabelle et merci SITTING HOAX qui a résolu partiellement
mon
PB,
car bien sur j'avais simplifié. La question finale est:
peut-on écrire une macro ( je n'y connais rien en VB) qui donnerait si
A1=1,
alors B2±, B3², B4³ etc...
Si pas clair, je peux envoyer par mail une petite feuille excel avec un
modèle de ce que je voudrais faire.
En tous cas merci




Merci Isabelle; mais ce n'est pas encore ça. Je veux remplir A2
sans y mettre de formule, sans y toucher. L'instruction doit être
placée
ailleurs.
Je n'ose pas croire qu'Excel ne le permette pas!


ose Archimède car c'est bien le cas,

comme Modeste l'a déja dit :
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!
par contre une macro événementiel peut faire ca.

isabelle


















Avatar
Sitting Hoax
Salut Gilbert,
tu aurais pu faire l'effort de nous le dire en ch'ti ;-)))
Amicalement
Siesting Hoax
"Modeste" a écrit dans le message de news:
%
Bonsour® Archimède avec ferveur ;o))) vous nous disiez :

Merci Modeste, mais justement, je cherche à "remplir" A2 SANS me
placer en A2! En un mot, je voudrais que l'instruction en A1
remplisse la cellule A2 avec le contenu de la A7 par exemple.


;o)))
Une formule renvoie un résultat dans la cellule où elle est et ne peut
modifier le contenu d'une autre cellule !!!!

comment l'exprimer autrement ???
A formula returns a result in the cell where it is and cannot change the
content of another cell.
Eine Formel liefert ein Ergebnis in der Zelle, wo sie ist, und nicht
ändern kann den Inhalt einer anderen Zelle.
???? ?????? ????? ?? ???????? ??? ???? ?? ???? ?? ???? ?????? ?????? ????.
??????????,???????,?????????,??????

Una fórmula que devuelve un resultado en la celda donde es y no puede
cambiar el contenido de otra celda.
???? ????? ??? ?????????? ??? ?????????? ??? ???? ???? ????? ??? ???
?????? ?? ??????? ?? ??????????? ???? ????? ????????.
Una formula restituisce un risultato nella cella dove è e non può
modificare il contenuto di un'altra cella.
????????????????????????????????????????
Een formule geeft een resultaat in de cel waar hij is en kan niet wijzigt
de inhoud van een andere cel.
A fórmula retorna um resultado na célula onde é e não pode alterar o
conteúdo de outra célula.
??????? ?????????? ????????? ? ??????, ??? ?? ? ?? ????? ??????? ?????????
? ?????????? ?????? ??????.

--
--
@+
;o)))





1 2