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

10 réponses

1 2
Avatar
Bourby
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
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

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
merci de l'info, mais je suis novice en VB.
Peux tu m'indiquer comment je procède:
dois je me mettre dans visualiser code de la feuille ?
mais ensuite ?
Cordialement
mr

-----Message d'origine-----
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
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
bonjour marc
comme thierry te laisse tomber comme une vieille chaussette mayennaise,
je t'esseuplique vite fait :
tu ouvres ton classeur, tu fais Alt + F11 pour atteindre le VBE, tu vois
alors à gauche une arborescence avec entre autres ton classeur ; tu
double cliques sur la feuille où va se passer ta petite salade, apparaît
alors à droite un module (feuil (code)) avec en haut deux combo boxes,
tu cliques sur la flèche de celle de gauche (Général) et tu choisis
Worksheet, dans le combo de droite tu vas voir Selection Change : ne
touche plus aux combo, jusque là, tu as tout juste ; tu vois aussi que
dans la partie inférieure du module s'est pré-affiché ce texte :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

End Sub

tu peux te sentir bien si tu as cela car là encore tu as tout juste ; tu
vois aussi qu'il y a un vide entre la première et le seconde ligne ; tu
t'y engouffres pour y écrire le texte de ta macro en commençant par les
termes que t'a donnés le broutard mayennais qui se fait passer pour un
bison lakota...
HTH
jps


marc rataboul a écrit:
merci de l'info, mais je suis novice en VB.
Peux tu m'indiquer comment je procède:
dois je me mettre dans visualiser code de la feuille ?
mais ensuite ?
Cordialement
mr


-----Message d'origine-----
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
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
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
sabatier
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
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