OVH Cloud OVH Cloud

ecrire une fonction personnalisée

19 réponses
Avatar
marc rataboul
Bonsoir
Je ne sais pas comment cr=E9er une fonction personnalis=E9e.
Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui=20
change r=E9guli=E8rement en automatique .
La Cellule A2 contient une nombre ( qui sera le n=B0 de=20
ligne ou je veux sauvegarder A1)=20
La Cellule A3 contient une nombre ( qui sera le n=B0 de=20
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'=E9crire en=20
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et peut-
=EAtre m'envoyer la fonction, se serait g=E9nial..
Bonne soir=E9e =E0 tous.
Cordialement

9 réponses

1 2
Avatar
sabatier
re marc
je passe la main mais quelque expert va sûrement te dire où ta proc
blesse...
jps

marc Rataboul a écrit:
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment


-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche, tu


cliques sur la

fleche de celui de droite pour faire apparaître un menu


déroulant où tu

vas trouver Change entre autres mais aussi Activate,


BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé


qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:

Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;


je


sens que je ne suis pas trés loin de la soluce
Cordialement



-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le combo


box de droite


pour y choisir Change et ainsi faire aparaître ce


texte :



Private Sub Worksheet_Change(ByVal Target As


Excel.Range)



End Sub

la suite : comme déjà dit
jps


ru-th a écrit:


Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:



28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle



s'effectue automatiquement chaque fois que A1 change ?
Merci pour ton aide.
Cordialement




-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre




cellule, ni aucun objet; elle se contente de faire


des





calculs, et d'en afficher le résultat dans la


cellule





qui


contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)



1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,



et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &


maSource.Offset





(0, 2).Text



Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la


macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit


dans





le message news:



261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.




Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n° de
ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n° de
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire


en





dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-




être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.



.











Avatar
ru-th
Salut

Avec la ligne en a2 et la colonne en a3
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$1" Then Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry
"marc Rataboul" a écrit dans le message de news:
29b401c42847$d8b005a0$
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment

-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche, tu
cliques sur la

fleche de celui de droite pour faire apparaître un menu
déroulant où tu

vas trouver Change entre autres mais aussi Activate,
BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé
qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:
Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;
je


sens que je ne suis pas trés loin de la soluce
Cordialement


-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le combo


box de droite

pour y choisir Change et ainsi faire aparaître ce
texte :




Private Sub Worksheet_Change(ByVal Target As
Excel.Range)




End Sub

la suite : comme déjà dit
jps


ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle


s'effectue automatiquement chaque fois que A1 change ?
Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre



cellule, ni aucun objet; elle se contente de faire
des





calculs, et d'en afficher le résultat dans la
cellule






qui



contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &
maSource.Offset






(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la
macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit
dans






le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.



Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n° de
ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n° de
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire
en





dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-



être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.






.







Avatar
ru-th
avez vu ce "endif"?
devient automatiquement end if dès qu'on change de lignes, alors, dans le

but du gestion rationelle du temps de travail, le comité consultatif créé
sur cet objet au bout de 3 réunions A proposé que la forme "endif" soit
tolérée compte tenu de l'automaticité de la correction et que parce que cela
fait causer JPS
a+
rural thierry
c'est quoi adresse mail ?

"sabatier"


a écrit dans le message de news:
même plus la force de taper ses espaces, l'homme aux broutards : vous
avez vu ce "endif"?
jps

ru-th a écrit:
Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit dans le message de
news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et qu'elle
s'effectue automatiquement chaque fois que A1 change ?
Merci pour ton aide.
Cordialement


-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une autre
cellule, ni aucun objet; elle se contente de faire des
calculs, et d'en afficher le résultat dans la cellule qui
contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)

1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,

et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset


(0, 2).Text

Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la macro
(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit dans


le message news:

261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction personnalisée.
Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n° de
ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n° de
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire en
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et peut-
être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.











Avatar
sabatier
:-)))))
jps

ru-th a écrit:
avez vu ce "endif"?


devient automatiquement end if dès qu'on change de lignes, alors, dans le
but du gestion rationelle du temps de travail, le comité consultatif créé
sur cet objet au bout de 3 réunions A proposé que la forme "endif" soit
tolérée compte tenu de l'automaticité de la correction et que parce que cela
fait causer JPS
a+
rural thierry
c'est quoi adresse mail ?

"sabatier"


a écrit dans le message de news:

même plus la force de taper ses espaces, l'homme aux broutards : vous
avez vu ce "endif"?
jps

ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit dans le message de


news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et qu'elle
s'effectue automatiquement chaque fois que A1 change ?
Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une autre
cellule, ni aucun objet; elle se contente de faire des
calculs, et d'en afficher le résultat dans la cellule qui
contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset


(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la macro
(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit dans


le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction personnalisée.
Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n° de
ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n° de
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire en
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et peut-
être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.














Avatar
Paul V.
Moi j'adore les endifs encore appelés chicons par chez nous.:-)

Paul V

ru-th wrote:
avez vu ce "endif"?
devient automatiquement end if dès qu'on change de lignes, alors,

dans le but du gestion rationelle du temps de travail, le comité
consultatif créé sur cet objet au bout de 3 réunions A proposé que
la forme "endif" soit tolérée compte tenu de l'automaticité de la
correction et que parce que cela fait causer JPS
a+
rural thierry
c'est quoi adresse mail ?

"sabatier"


a écrit dans le message de news:
même plus la force de taper ses espaces, l'homme aux broutards : vous
avez vu ce "endif"?
jps

ru-th a écrit:
Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit dans le message
de news: 28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et qu'elle
s'effectue automatiquement chaque fois que A1 change ?
Merci pour ton aide.
Cordialement


-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une autre
cellule, ni aucun objet; elle se contente de faire des
calculs, et d'en afficher le résultat dans la cellule qui
contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)

1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,

et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset


(0, 2).Text

Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la macro
(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit dans


le message news:

261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction personnalisée.
Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n° de
ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n° de
colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire en
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et peut-
être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.








Avatar
marc rataboul
Bonsoir,
La macro marche si la modif de A1 est faite au clavier.
La macro ne marche pas si la modif de A1 vient d'une
requête web.
Récupérer des données automatiquement du web était le
point de départ de ma demande; je suis si prés du but que
je me permet de vous demander encore votre avis.
Avez vous une idée ?
Cordialement
MR

Nb : si je peux vous envoyer mon fichier ecrivez moi.

-----Message d'origine-----
Salut

Avec la ligne en a2 et la colonne en a3
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$1" Then Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry
"marc Rataboul" a écrit dans
le message de news:

29b401c42847$d8b005a0$
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment

-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche, tu
cliques sur la

fleche de celui de droite pour faire apparaître un menu
déroulant où tu

vas trouver Change entre autres mais aussi Activate,
BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé
qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:
Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;
je


sens que je ne suis pas trés loin de la soluce
Cordialement


-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le combo


box de droite

pour y choisir Change et ainsi faire aparaître ce
texte :




Private Sub Worksheet_Change(ByVal Target As
Excel.Range)




End Sub

la suite : comme déjà dit
jps


ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle


s'effectue automatiquement chaque fois que A1
change ?





Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre



cellule, ni aucun objet; elle se contente de faire
des





calculs, et d'en afficher le résultat dans la
cellule






qui



contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &
maSource.Offset






(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la
macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit
dans






le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.



Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n°
de






ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n°
de






colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire
en





dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-



être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.






.




.








Avatar
ru-th
Salut

avec l'évenement calculate ?
Private Sub Worksheet_Calculate(ByVal Target As Range)


--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"marc rataboul" a écrit dans le message de
news:2e3101c4288e$3b52dd90$
Bonsoir,
La macro marche si la modif de A1 est faite au clavier.
La macro ne marche pas si la modif de A1 vient d'une
requête web.
Récupérer des données automatiquement du web était le
point de départ de ma demande; je suis si prés du but que
je me permet de vous demander encore votre avis.
Avez vous une idée ?
Cordialement
MR

Nb : si je peux vous envoyer mon fichier ecrivez moi.

-----Message d'origine-----
Salut

Avec la ligne en a2 et la colonne en a3
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$1" Then Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry
"marc Rataboul" a écrit dans
le message de news:

29b401c42847$d8b005a0$
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment

-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche, tu
cliques sur la

fleche de celui de droite pour faire apparaître un menu
déroulant où tu

vas trouver Change entre autres mais aussi Activate,
BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé
qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:
Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;
je


sens que je ne suis pas trés loin de la soluce
Cordialement


-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le combo


box de droite

pour y choisir Change et ainsi faire aparaître ce
texte :




Private Sub Worksheet_Change(ByVal Target As
Excel.Range)




End Sub

la suite : comme déjà dit
jps


ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction fx
(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle


s'effectue automatiquement chaque fois que A1
change ?





Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre



cellule, ni aucun objet; elle se contente de faire
des





calculs, et d'en afficher le résultat dans la
cellule






qui



contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &
maSource.Offset






(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la
macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit
dans






le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.



Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur qui
change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n°
de






ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n°
de






colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et l'écrire
en





dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-



être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.






.




.








Avatar
marc rataboul
Salut
voici ce que j'ai fait (il y a 1 erreur de compil ou 1
bug , j'ai fait apparaitre l'évenement en sélectionnant à
gauche worksheet et à droite calculate et j'ai rajouté
(ByVal Target As Range)

Private Sub Worksheet_Calculate(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Range("A1").Select
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If

désolé
cordialement
a+
-----Message d'origine-----
Salut

avec l'évenement calculate ?
Private Sub Worksheet_Calculate(ByVal Target As Range)


--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"marc rataboul" a écrit dans
le message de

news:2e3101c4288e$3b52dd90$
Bonsoir,
La macro marche si la modif de A1 est faite au clavier.
La macro ne marche pas si la modif de A1 vient d'une
requête web.
Récupérer des données automatiquement du web était le
point de départ de ma demande; je suis si prés du but que
je me permet de vous demander encore votre avis.
Avez vous une idée ?
Cordialement
MR

Nb : si je peux vous envoyer mon fichier ecrivez moi.

-----Message d'origine-----
Salut

Avec la ligne en a2 et la colonne en a3
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$1" Then Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry
"marc Rataboul" a écrit dans
le message de news:

29b401c42847$d8b005a0$
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment

-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche,
tu



cliques sur la
fleche de celui de droite pour faire apparaître un menu
déroulant où tu

vas trouver Change entre autres mais aussi Activate,
BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé
qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:
Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;
je


sens que je ne suis pas trés loin de la soluce
Cordialement


-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le
combo






box de droite

pour y choisir Change et ainsi faire aparaître ce
texte :




Private Sub Worksheet_Change(ByVal Target As
Excel.Range)




End Sub

la suite : comme déjà dit
jps


ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction
fx






(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle


s'effectue automatiquement chaque fois que A1
change ?





Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre



cellule, ni aucun objet; elle se contente de faire
des





calculs, et d'en afficher le résultat dans la
cellule






qui



contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &
maSource.Offset






(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la
macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit
dans






le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.



Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur
qui







change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n°
de






ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n°
de






colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et
l'écrire







en
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-



être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.






.




.




.









Avatar
ru-th
re-

essaies avec
Private Sub Worksheet_Calculate()
On Error Resume Next
Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry

"marc rataboul" a écrit dans le message de news:
2eeb01c4289f$62e655b0$
Salut
voici ce que j'ai fait (il y a 1 erreur de compil ou 1
bug , j'ai fait apparaitre l'évenement en sélectionnant à
gauche worksheet et à droite calculate et j'ai rajouté
(ByVal Target As Range)

Private Sub Worksheet_Calculate(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Range("A1").Select
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If

désolé
cordialement
a+
-----Message d'origine-----
Salut

avec l'évenement calculate ?
Private Sub Worksheet_Calculate(ByVal Target As Range)


--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"marc rataboul" a écrit dans
le message de

news:2e3101c4288e$3b52dd90$
Bonsoir,
La macro marche si la modif de A1 est faite au clavier.
La macro ne marche pas si la modif de A1 vient d'une
requête web.
Récupérer des données automatiquement du web était le
point de départ de ma demande; je suis si prés du but que
je me permet de vous demander encore votre avis.
Avez vous une idée ?
Cordialement
MR

Nb : si je peux vous envoyer mon fichier ecrivez moi.

-----Message d'origine-----
Salut

Avec la ligne en a2 et la colonne en a3
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$A$1" Then Cells([a2], [a3]) = [a1]
End Sub

a+
rural thierry
"marc Rataboul" a écrit dans
le message de news:

29b401c42847$d8b005a0$
Merci de ta patience,
J'ai réussi à retrouver d'aprés tes instructions, mais
cela ne fonctionne pas j'ai un bug
voici ce que j'ai compris :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text & maSource.Offset
(0, 2).Text
Range(maChaîne) = maSource
End If
End Sub

J'ai un bug à: Range(maChaîne) = maSource
Désolé...
Cordialment

-----Message d'origine-----
re marc
une fois que tu as Worksheet dans le combo de gauche,
tu



cliques sur la
fleche de celui de droite pour faire apparaître un menu
déroulant où tu

vas trouver Change entre autres mais aussi Activate,
BeforeDoubbleClick

(ne pas confondre avec BeforeDoubleIou, évènement passé
qui supposait

qu'on avait moisn d'emm....)
jps

marc rataboul a écrit:
Bonjour,
Vous allez dire que je suis neu-neu ....
comment peut-on aller dans le combo box de droite?
Je persiste car la macro de bourby marche trés bien;
je


sens que je ne suis pas trés loin de la soluce
Cordialement


-----Message d'origine-----
oups pardon marc
j'ai lu trop vite : il faudra bien aller dans le
combo






box de droite

pour y choisir Change et ainsi faire aparaître ce
texte :




Private Sub Worksheet_Change(ByVal Target As
Excel.Range)




End Sub

la suite : comme déjà dit
jps


ru-th a écrit:

Salut

mets là dans le module de la feuille concernée
avec l'évenement change
Private Sub Worksheet_Change(ByVal Target As Range)
if target.address="$A$1 then
.....
endif
end sub

a+
rural thierry
"marc rataboul" a écrit


dans le message de news:


28d001c42831$ef54ff10$
Bonjour,
Merci c'est trés clair.
Puisque l'on ne peut pas faire écrire une fonction
fx






(c'est dommage en connait tu la raison ? ), est'il
possible que cette macro soit en tache de fond et


qu'elle


s'effectue automatiquement chaque fois que A1
change ?





Merci pour ton aide.
Cordialement



-----Message d'origine-----
bonsoir,

une fonction ne peut pas faire ce que tusouhaites:
une fonction ne peut pas modifier le contenu d'une


autre



cellule, ni aucun objet; elle se contente de faire
des





calculs, et d'en afficher le résultat dans la
cellule






qui



contient =fx(A1,etc...).

il te faudra donc une macro;
j'ai "transposé" la présentation:
et adopté des formats "A1";donc
la valeur à recopier en 1ère colonne
une ou 2 lettres en 2è colonne (= la colonne de


destination)


1 chiffre en 3è colonne (=la ligne de destination)
une cellule quelconque de la ligne à traiter est


sélectionnée,


et on exécute ceci:

Sub essai()
Dim maChaîne As String, maSource As Range
Set maSource = Cells(Selection.Row, 1)
maChaîne = maSource.Offset(0, 1).Text &
maSource.Offset






(0, 2).Text


Range(maChaîne) = maSource
End Sub

Par commodité, affecter un raccourci clavier à la
macro





(outils macro [la sélectionner] options])

J'espère que c'est assez clair pour toi;
ma journée est finie, dodo!

bon courage

Bourby


"marc rataboul" a écrit
dans






le message news:


261501c427dd$80d33ec0$
Bonsoir
Je ne sais pas comment créer une fonction


personnalisée.



Voici le cahier des charges :
Imaginons que la cellule A1 contienne une valeur
qui







change régulièrement en automatique .
La Cellule A2 contient une nombre ( qui sera le n°
de






ligne ou je veux sauvegarder A1)
La Cellule A3 contient une nombre ( qui sera le n°
de






colonne ou je veux sauvegarder A1)

Ma fonction : fx(A1 ;A2 ;A3)
Devra prendre la valeur de la cellule A1 et
l'écrire







en
dur dans la cellule (A2,A3)

Si quelqu'un peut me dire si cela est possible et


peut-



être m'envoyer la fonction, se serait génial..
Bonne soirée à tous.
Cordialement



.





.






.




.




.









1 2