Retenir selection multiple

Le
milloche
Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20631051
Bonjour Milloche,

Pour permettre à Excel de se souvenir d'une sélection de cellules que tu as faites à
l'écran :

Dim Rg As Range

if typename(selection) = "Range" then
set Rg = selection
end if

La variable Rg comprend toutes les cellules que tu avais
sélectionnée avant de lancer la macro. Tu peux faire appel
à elle comme aide mémoire !
Le test "if typename(selection) = "Range"" est important car
pour excel, l'expression "Selection" est un terme générique et
il désigne à tour de rôle, tous les types d'objets que l'on peut
insérer dans une feuille, y compris une sélection de cellules.





"milloche"
Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM
milloche
Le #20631361
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" %
Bonjour Milloche,

Pour permettre à Excel de se souvenir d'une sélection de cellules que tu
as faites à
l'écran :

Dim Rg As Range

if typename(selection) = "Range" then
set Rg = selection
end if

La variable Rg comprend toutes les cellules que tu avais
sélectionnée avant de lancer la macro. Tu peux faire appel
à elle comme aide mémoire !
Le test "if typename(selection) = "Range"" est important car
pour excel, l'expression "Selection" est un terme générique et
il désigne à tour de rôle, tous les types d'objets que l'on peut
insérer dans une feuille, y compris une sélection de cellules.





"milloche" groupe de discussion :

Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à
faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais
lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de
ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM



michdenis
Le #20632211
Est-ce que tu veux faire une macro seulement pour la ligne 9 de ton application ?
J'ai bien vu la formule : =((I5*F5)+(F7*I7))/(F5+F7)

Il y aura-t-il une ligne 10, 11, 12 ....à ton application ?
Est-ce que tu veux toujours entrer la même formule
et qui fait référence au même cellules ? Sinon, comment
fais-tu pour déterminer les plages de cellules qui seront
nécessaires pour établir la formule pour les autres lignes ?

Dans l'exemple que je te donnais, Rg pour retenir la sélection
des cellules faites à l'écran, encore faut-il lui dire à partir de
quel moment il doit retenir la sélection faite par l'usager ? Et
à quel moment aura fini de faire la sélection ?

En conséquence, je ne comprends pas trop bien ce que doit faire
la macro et quand...







"milloche" eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" %
Bonjour Milloche,

Pour permettre à Excel de se souvenir d'une sélection de cellules que tu
as faites à
l'écran :

Dim Rg As Range

if typename(selection) = "Range" then
set Rg = selection
end if

La variable Rg comprend toutes les cellules que tu avais
sélectionnée avant de lancer la macro. Tu peux faire appel
à elle comme aide mémoire !
Le test "if typename(selection) = "Range"" est important car
pour excel, l'expression "Selection" est un terme générique et
il désigne à tour de rôle, tous les types d'objets que l'on peut
insérer dans une feuille, y compris une sélection de cellules.





"milloche" groupe de discussion :

Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à
faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais
lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de
ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM



milloche
Le #20631451
Non bien sur, dans ma future macro, je rajouterais en colonne I "value"
après la formule qui aura calculé ce prix de revient moyen sur 2 lignes
différentes.
Si tu remonte un peu dans les lignes de cette colonne, tu vois que la
colonne I est normalement une valeur et pas une formule. Cette dernière
ligne sur le fichier préfigure ce que la macro doit calculer.
Il n'y a aucune référence absolues. Tout se calcule sur la même ligne. Sauf
bien sur dans cette future macro, sur la première ligne vide qui fera la
moyenne des 2 lignes, exactement les lignes des 2 cellules sélectionnées
que je veux justement qu'excel retienne pour pouvoir y aller chercher les
éléments dont j'ai besoin pour faire ce calcul.
En fait, cela revient à :
J'ai acheté une fois 300 kilos de patates à 0.65 le kilos (sur une ligne)
puis 300 kilos de patates à 0.75 (sur une autre ligne pas forcement ou
mieux, jamais contiguë) et la macro dont je rêve me dirait (après avoir
sélectionné la case ou est 0.65 ET la case ou est 0.75 ET lancé la macro)
sur la première ligne non vide : tu as en stock 600 kilos de patates que tu
as payé 0.70 le kilo. Veut tu effacer les lignes qui ont servit au calcul ?
Plus clair ?
JMM


"michdenis"
Est-ce que tu veux faire une macro seulement pour la ligne 9 de ton
application ?
J'ai bien vu la formule : =((I5*F5)+(F7*I7))/(F5+F7)

Il y aura-t-il une ligne 10, 11, 12 ....à ton application ?
Est-ce que tu veux toujours entrer la même formule
et qui fait référence au même cellules ? Sinon, comment
fais-tu pour déterminer les plages de cellules qui seront
nécessaires pour établir la formule pour les autres lignes ?

Dans l'exemple que je te donnais, Rg pour retenir la sélection
des cellules faites à l'écran, encore faut-il lui dire à partir de
quel moment il doit retenir la sélection faite par l'usager ? Et
à quel moment aura fini de faire la sélection ?

En conséquence, je ne comprends pas trop bien ce que doit faire
la macro et quand...







"milloche" groupe de discussion :
eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" %
Bonjour Milloche,

Pour permettre à Excel de se souvenir d'une sélection de cellules que tu
as faites à
l'écran :

Dim Rg As Range

if typename(selection) = "Range" then
set Rg = selection
end if

La variable Rg comprend toutes les cellules que tu avais
sélectionnée avant de lancer la macro. Tu peux faire appel
à elle comme aide mémoire !
Le test "if typename(selection) = "Range"" est important car
pour excel, l'expression "Selection" est un terme générique et
il désigne à tour de rôle, tous les types d'objets que l'on peut
insérer dans une feuille, y compris une sélection de cellules.





"milloche" groupe de discussion :

Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à
faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais
lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de
ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM






milloche
Le #20632951
En fait, mon seul problème est de mémoriser la position DES DEUX cellules
qui étaient sélectionnées lorsque tu as ouvert mon fichier soit I5 et I7.
En fait, une seule des 2 est vraiment sélectionnée. Mais moi je veux
mémoriser la position des deux pour venir y chercher sur leur ligne les
infos dont j'ai besoin sur la nouvelle ligne (en fin de liste) que je créé.
Pour tout le reste, je pense pouvoir le faire moi même, ou je reviendrai
vers cette file.
<):o))


"milloche" %
Non bien sur, dans ma future macro, je rajouterais en colonne I "value"
après la formule qui aura calculé ce prix de revient moyen sur 2 lignes
différentes.
Si tu remonte un peu dans les lignes de cette colonne, tu vois que la
colonne I est normalement une valeur et pas une formule. Cette dernière
ligne sur le fichier préfigure ce que la macro doit calculer.
Il n'y a aucune référence absolues. Tout se calcule sur la même ligne.
Sauf bien sur dans cette future macro, sur la première ligne vide qui
fera la moyenne des 2 lignes, exactement les lignes des 2 cellules
sélectionnées que je veux justement qu'excel retienne pour pouvoir y
aller chercher les éléments dont j'ai besoin pour faire ce calcul.
En fait, cela revient à :
J'ai acheté une fois 300 kilos de patates à 0.65 le kilos (sur une ligne)
puis 300 kilos de patates à 0.75 (sur une autre ligne pas forcement ou
mieux, jamais contiguë) et la macro dont je rêve me dirait (après avoir
sélectionné la case ou est 0.65 ET la case ou est 0.75 ET lancé la macro)
sur la première ligne non vide : tu as en stock 600 kilos de patates que
tu as payé 0.70 le kilo. Veut tu effacer les lignes qui ont servit au
calcul ?
Plus clair ?
JMM


"michdenis"
Est-ce que tu veux faire une macro seulement pour la ligne 9 de ton
application ?
J'ai bien vu la formule : =((I5*F5)+(F7*I7))/(F5+F7)

Il y aura-t-il une ligne 10, 11, 12 ....à ton application ?
Est-ce que tu veux toujours entrer la même formule
et qui fait référence au même cellules ? Sinon, comment
fais-tu pour déterminer les plages de cellules qui seront
nécessaires pour établir la formule pour les autres lignes ?

Dans l'exemple que je te donnais, Rg pour retenir la sélection
des cellules faites à l'écran, encore faut-il lui dire à partir de
quel moment il doit retenir la sélection faite par l'usager ? Et
à quel moment aura fini de faire la sélection ?

En conséquence, je ne comprends pas trop bien ce que doit faire
la macro et quand...







"milloche" groupe de discussion :
eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" %
Bonjour Milloche,

Pour permettre à Excel de se souvenir d'une sélection de cellules que
tu
as faites à
l'écran :

Dim Rg As Range

if typename(selection) = "Range" then
set Rg = selection
end if

La variable Rg comprend toutes les cellules que tu avais
sélectionnée avant de lancer la macro. Tu peux faire appel
à elle comme aide mémoire !
Le test "if typename(selection) = "Range"" est important car
pour excel, l'expression "Selection" est un terme générique et
il désigne à tour de rôle, tous les types d'objets que l'on peut
insérer dans une feuille, y compris une sélection de cellules.





"milloche" groupe de discussion :

Bonjour le forum
Je cherche dans une nouvelle ligne (la première vide) d'une feuille à
faire
la moyenne de deux autres, déjà existantes.Puis les supprimer.
Prix de revient moyen quand 2 achats même article à prix et quantité
différents et total en stock
Je butte dès le départ.
Je ne peux donc pas vous donner d'exemple ni envoyer un fichier
Je sélectionne 2 cellules (par ctrl+clic) dans la même colonne mais
lignes
presque jamais contiguës pour lesquelles je veux faire ce calcul.
Comment entrer dans la caboche d'excel qu'il faut qu'il se souvienne de
ces
2 cellules ou au moins de leur N° de ligne pour pouvoir y revenir quand
j'en aurai besoin dans ma macro.
Je ne peux que mémoriser la cellule active mais pas la seconde de la
sélection.
Merci.
Ma macro actuelle est
Dim a,b
Set a= activecell
Set b= je sais pas quoi mais c'est la seconde ligne ou cellule de ma
sélection
Et c'est tout pour l'instant !
Je pensais au départ pouvoir le faire avec plus de 2 lignes, mais pour
commencer,2 suffiront.
JMM










michdenis
Le #20633631
Désolé, mais j'ai de la difficulté à suivre.

Dans l'exemple que je t'ai donné :

'Déclare la variable dans un module Standard
Public Rg As Range

Sub Test()
if typename(selection) = "Range" then
set Rg = selection
end if
End Sub

Si au moment où tu as à l'écran sélectionné tes 2 cellules et
que tu appelles la macro "Test", La variable Rg conservera
tout ce que tu veux de tes 2 cellules, leurs adresses, la valeur
de chacune des cellules, le nom de la feuille où sont tes 2
cellules, etc ...

Exemple, pour extraire les adresses et la valeur des 2 cellules
for each C in Rg
Msgbox c.Address & ", " & c.Value
Next

Ce que je ne comprends pas, c'est la finalité de la macro ! Tu ne dois
pas faire ça que pour une seule ligne à traiter...

Il y a d'autres répondants sur ce forum, espérons que l'un deux arrivera
à saisir ce que tu essaies de m'expliquer.
milloche
Le #20634151
OK
Avec ces 2 macros et tes explications supplémentaires, ça fonctionne.
J'avais eu entre-temps une idée d'Eugénie, ma copine :
mémoriser la position de la sélection unique (la première ligne à traiter)
puis demander par inputbox le n° de la seconde ligne. Je n'ai pas eu le
temps de finir et je laisse tomber vu ta solution.
Pour ta question, et je te dois bien ça, la finalité est (tu as remarqué
qu'il n'est pas question de patates mais d'actions boursières) de calculer,
quand tu achète la même action mais en 2 fois donc sur 2 lignes, le prix
moyen d'achat et la quantité que tu as en portefeuille, et de tout reporter
sur une seule et même ligne comme le font les "vrais" programmes de gestion
boursière.
A plus.
<]:o)) JMM

"michdenis"
Désolé, mais j'ai de la difficulté à suivre.

Dans l'exemple que je t'ai donné :

'Déclare la variable dans un module Standard
Public Rg As Range

Sub Test()
if typename(selection) = "Range" then
set Rg = selection
end if
End Sub

Si au moment où tu as à l'écran sélectionné tes 2 cellules et
que tu appelles la macro "Test", La variable Rg conservera
tout ce que tu veux de tes 2 cellules, leurs adresses, la valeur
de chacune des cellules, le nom de la feuille où sont tes 2
cellules, etc ...

Exemple, pour extraire les adresses et la valeur des 2 cellules
for each C in Rg
Msgbox c.Address & ", " & c.Value
Next

Ce que je ne comprends pas, c'est la finalité de la macro ! Tu ne dois
pas faire ça que pour une seule ligne à traiter...

Il y a d'autres répondants sur ce forum, espérons que l'un deux arrivera
à saisir ce que tu essaies de m'expliquer.






Solutions-xl
Le #20631921
On 25 nov, 23:47, "milloche"
OK
Avec ces 2 macros et tes explications supplémentaires, ça fonctionne.
J'avais eu entre-temps une idée d'Eugénie, ma copine :
mémoriser la position de la sélection unique (la première ligne à traiter)
puis demander par inputbox le n° de la seconde ligne. Je n'ai pas eu le
temps de finir et je laisse tomber vu ta solution.
Pour ta question, et je te dois bien ça, la finalité est (tu as remar qué
qu'il n'est pas question de patates mais d'actions boursières) de calcu ler,
quand tu achète la même action mais en 2 fois donc sur 2 lignes, le p rix
moyen d'achat et la quantité que tu as en portefeuille, et de tout repo rter
sur une seule et même ligne comme le font les "vrais" programmes de ges tion
boursière.
A plus.
<]:o)) JMM

"michdenis"

> Désolé, mais j'ai de la difficulté à suivre.

> Dans l'exemple que je t'ai donné :

> 'Déclare la variable dans un module Standard
> Public Rg As Range

> Sub Test()
> if typename(selection) = "Range" then
>    set Rg = selection
> end if
> End Sub

> Si au moment où tu as à l'écran sélectionné tes 2 cellules et
> que tu appelles la macro "Test", La variable Rg conservera
> tout ce que tu veux de tes 2 cellules, leurs adresses, la valeur
> de chacune des cellules, le nom de la feuille où sont tes 2
> cellules, etc ...

> Exemple, pour extraire les adresses et la valeur des 2 cellules
> for each C in Rg
>    Msgbox c.Address & ", " & c.Value
> Next

> Ce que je ne comprends pas, c'est la finalité de la macro ! Tu ne doi s
> pas faire ça que pour une seule ligne à traiter...

> Il y a d'autres répondants sur ce forum, espérons que l'un deux arr ivera
> à saisir ce que tu essaies de m'expliquer.



Bonjour
Au vu du fichier joint, et des tes explications, je pense qu'il
vaudrait mieux traiter par nom de valeur

Je trouve la solutions des sélections multiples complexes et pas
évidente en VBA
La solution serait de rechercher par à rapport a la ligne active, s'il
existe d'autre lignes avec la même action (CF. ALCATEL-LUCENT) de
faire les calcul puis d'effacer les anciennes lignes.
Je n'a pas le temps de me pencher maintenant sur le problème mais si
tu as un peu de patience je peux le faire demain soir !
Philippe NOSS
www.solutions-xl.com
milloche
Le #20636491
Bonjour Philippe
C'est chiant d'avoir à redescendre toute la file pour te lire. Ne peux tu
pas mettre ton message en tête comme de coutume ici?
Le fichier joint est largement tronqué en taille et en boutons et macros,
bande passante oblige. J'ai moi-même fabriqué un filtre NOM sur mon fichier
réel et quand je l'actionne sur Alcatel, il me filtre tout un tas de
lignes or seules celles non soldées m'intéressent. Et elles sont en général
pas loin de la fin de liste donc sous mes yeux, même sans filtrer quoi que
ce soit.
Comme j'aime bien les innovations, j'ai pensé que désigner des lignes ou
cellules par simple sélection était une idée originale et comme ce forum
(dont Denis entre autres) trouve toujours une solution aux idées les plus
bizarres, j'ai posé la question. Et j'ai encore une fois appris quelques
choses.

Merci de t'être intéressé à moi.
JMM


"Solutions-xl"
On 25 nov, 23:47, "milloche"
OK
Avec ces 2 macros et tes explications supplémentaires, ça fonctionne.
J'avais eu entre-temps une idée d'Eugénie, ma copine :
mémoriser la position de la sélection unique (la première ligne à
traiter)
puis demander par inputbox le n° de la seconde ligne. Je n'ai pas eu le
temps de finir et je laisse tomber vu ta solution.
Pour ta question, et je te dois bien ça, la finalité est (tu as remarqué
qu'il n'est pas question de patates mais d'actions boursières) de
calculer,
quand tu achète la même action mais en 2 fois donc sur 2 lignes, le prix
moyen d'achat et la quantité que tu as en portefeuille, et de tout
reporter
sur une seule et même ligne comme le font les "vrais" programmes de
gestion
boursière.
A plus.
<]:o)) JMM

"michdenis"

> Désolé, mais j'ai de la difficulté à suivre.

> Dans l'exemple que je t'ai donné :

> 'Déclare la variable dans un module Standard
> Public Rg As Range

> Sub Test()
> if typename(selection) = "Range" then
> set Rg = selection
> end if
> End Sub

> Si au moment où tu as à l'écran sélectionné tes 2 cellules et
> que tu appelles la macro "Test", La variable Rg conservera
> tout ce que tu veux de tes 2 cellules, leurs adresses, la valeur
> de chacune des cellules, le nom de la feuille où sont tes 2
> cellules, etc ...

> Exemple, pour extraire les adresses et la valeur des 2 cellules
> for each C in Rg
> Msgbox c.Address & ", " & c.Value
> Next

> Ce que je ne comprends pas, c'est la finalité de la macro ! Tu ne dois
> pas faire ça que pour une seule ligne à traiter...

> Il y a d'autres répondants sur ce forum, espérons que l'un deux
> arrivera
> à saisir ce que tu essaies de m'expliquer.



Bonjour
Au vu du fichier joint, et des tes explications, je pense qu'il
vaudrait mieux traiter par nom de valeur

Je trouve la solutions des sélections multiples complexes et pas
évidente en VBA
La solution serait de rechercher par à rapport a la ligne active, s'il
existe d'autre lignes avec la même action (CF. ALCATEL-LUCENT) de
faire les calcul puis d'effacer les anciennes lignes.
Je n'a pas le temps de me pencher maintenant sur le problème mais si
tu as un peu de patience je peux le faire demain soir !
Philippe NOSS
www.solutions-xl.com
Solutions-xl
Le #20638991
Bonjour
Le message en haut OK
L'idée de la sélection pourquoi pas, mais la sélection multiple n'est
pas forcément facile à gérer car il faut analyser l'adresse des
cellules que VBA renvoie
Tu peux essayer avec" msgbox selection.address"
Ca me semble tellement plus carré de faire ca par recherche sur le
nom !
Mais c'est vraiment que le défi de la sélection multiple est pas
mal !!!
Philippe

On 26 nov, 13:05, "milloche"
Bonjour Philippe
C'est chiant d'avoir à redescendre toute la file pour te lire. Ne peux tu
pas mettre ton message en tête comme de coutume ici?
Le fichier joint est largement tronqué en taille et en boutons et macro s,
bande passante oblige. J'ai moi-même fabriqué un filtre NOM sur mon f ichier
réel et quand je l'actionne sur Alcatel, il me filtre tout un tas de
lignes or seules celles non soldées m'intéressent. Et elles sont en g énéral
pas loin de la fin de liste donc sous mes yeux, même sans filtrer quoi que
ce soit.
Comme j'aime bien les innovations, j'ai pensé que désigner des lignes ou
cellules par simple sélection était une idée originale et comme ce forum
(dont Denis entre autres) trouve toujours une solution aux idées les pl us
bizarres, j'ai posé la question. Et j'ai encore une fois appris quelque s
choses.

Merci de t'être intéressé à moi.
JMM

"Solutions-xl"
On 25 nov, 23:47, "milloche"


> OK
> Avec ces 2 macros et tes explications supplémentaires, ça fonctionn e.
> J'avais eu entre-temps une idée d'Eugénie, ma copine :
> mémoriser la position de la sélection unique (la première ligne à
> traiter)
> puis demander par inputbox le n° de la seconde ligne. Je n'ai pas eu le
> temps de finir et je laisse tomber vu ta solution.
> Pour ta question, et je te dois bien ça, la finalité est (tu as rem arqué
> qu'il n'est pas question de patates mais d'actions boursières) de
> calculer,
> quand tu achète la même action mais en 2 fois donc sur 2 lignes, le prix
> moyen d'achat et la quantité que tu as en portefeuille, et de tout
> reporter
> sur une seule et même ligne comme le font les "vrais" programmes de
> gestion
> boursière.
> A plus.
> <]:o)) JMM

> "michdenis" >

> > Désolé, mais j'ai de la difficulté à suivre.

> > Dans l'exemple que je t'ai donné :

> > 'Déclare la variable dans un module Standard
> > Public Rg As Range

> > Sub Test()
> > if typename(selection) = "Range" then
> > set Rg = selection
> > end if
> > End Sub

> > Si au moment où tu as à l'écran sélectionné tes 2 cellules et
> > que tu appelles la macro "Test", La variable Rg conservera
> > tout ce que tu veux de tes 2 cellules, leurs adresses, la valeur
> > de chacune des cellules, le nom de la feuille où sont tes 2
> > cellules, etc ...

> > Exemple, pour extraire les adresses et la valeur des 2 cellules
> > for each C in Rg
> > Msgbox c.Address & ", " & c.Value
> > Next

> > Ce que je ne comprends pas, c'est la finalité de la macro ! Tu ne d ois
> > pas faire ça que pour une seule ligne à traiter...

> > Il y a d'autres répondants sur ce forum, espérons que l'un deux
> > arrivera
> > à saisir ce que tu essaies de m'expliquer.

Bonjour
Au vu du fichier joint,  et des tes explications, je pense qu'il
vaudrait mieux traiter par nom de valeur

Je trouve la solutions des sélections multiples complexes et  pas
évidente en VBA
La solution serait de rechercher par à rapport a la ligne active, s'il
existe d'autre lignes avec la même action (CF. ALCATEL-LUCENT) de
faire les calcul puis d'effacer les anciennes lignes.
Je n'a pas le temps de me pencher maintenant sur le problème mais si
tu as un peu de patience je peux le faire demain soir !
Philippe NOSSwww.solutions-xl.com


Publicité
Poster une réponse
Anonyme