Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retenir selection multiple

12 réponses
Avatar
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

10 réponses

1 2
Avatar
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" a écrit dans le message de 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
Avatar
milloche
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" a écrit dans le message de news:
%
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" a écrit dans le message de
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



Avatar
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" a écrit dans le message de groupe de discussion :
eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" a écrit dans le message de news:
%
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" a écrit dans le message de
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



Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de
groupe de discussion :
eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" a écrit dans le message de news:
%
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" a écrit dans le message de
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






Avatar
milloche
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" a écrit dans le message de news:
%
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" a écrit dans le message de news:

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" a écrit dans le message de
groupe de discussion :
eV$
Salut Denis
En plus clair
http://www.cijoint.fr/cjlink.php?file=cj200911/cijvsVA0CY.xls
A plus

"michdenis" a écrit dans le message de news:
%
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" a écrit dans le message de
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










Avatar
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.
Avatar
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" a écrit dans le message de news:

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.






Avatar
Solutions-xl
On 25 nov, 23:47, "milloche" wrote:
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" a écrit dans le message de news:


> 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
Avatar
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 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" a écrit dans le message de news:

On 25 nov, 23:47, "milloche" wrote:
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" a écrit dans le message de news:


> 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
Avatar
Solutions-xl
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" wrote:
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" a écrit dans le message de news:

On 25 nov, 23:47, "milloche" wrote:



> 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" a écrit dans le message de news:
>

> > 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


1 2