OVH Cloud OVH Cloud

Multiplication de colonne

7 réponses
Avatar
MV
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques formules
(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur par
ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est tres
lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de mes
formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci

7 réponses

Avatar
CAP2
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du tout.
Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques formules
(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur par
ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est tres
lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de mes
formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci




Avatar
MV
Ca marche oui.
Je vais faire comme ca...
Merci


"CAP2" a écrit dans le message de
news:%
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur
par


ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de
mes


formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci








Avatar
RT
Bonjour

Comme je l'ai déjà signalé, je débute en VBA

Mais je me pose la question suivante
A moins que cette manipulation ne fasse partie d'un ensemble plus
complexe,je ne comprends pas l'utilité de faire appel à VBA pour si peu

Moi dans ce cas-ci j'aurais simplement utilisé une fonction Excel
(En partant du principe ""J'utilise pas mon camion 35 Tonnes pour aller
chercher mon pain""

si la collnne commence en A1
J'aurais en B1 =(A1+A1*0.1)
Mieux j'aurais en C1 mis 0.1
et puis en B1 = (A1+A1*C$1)

Ce qui me permet de changer la valeur du pourcentage

Mais qui sait je n'ai peut-être pas compris la question

Qu'est-ce que tu en pense?

Rex

"CAP2" wrote in message
news:#
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur
par


ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de
mes


formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci








Avatar
MV
bonjour,
J'adhere a ta doctrine !
Dans mon cas j'ai besoin au final que mes cellules aient une valeur et non
une formule, et d'autre part que le pourcentage soit saisi dans une
inputbox...
apres j'essaye d'optimiser au mieux et parcourir toutes les lignes d'une
colonne est a priori toujours plus lent que de laisser excel faire du calcul
matriciel... ce qu'il fait tres bien et vite...

Et comme je suis à la bourre ben pour l'instant je me satisfais de la
proposition de CAP2.


"RT" a écrit dans le message de
news:TpKSc.211651$
Bonjour

Comme je l'ai déjà signalé, je débute en VBA

Mais je me pose la question suivante
A moins que cette manipulation ne fasse partie d'un ensemble plus
complexe,je ne comprends pas l'utilité de faire appel à VBA pour si peu

Moi dans ce cas-ci j'aurais simplement utilisé une fonction Excel
(En partant du principe ""J'utilise pas mon camion 35 Tonnes pour aller
chercher mon pain""

si la collnne commence en A1
J'aurais en B1 =(A1+A1*0.1)
Mieux j'aurais en C1 mis 0.1
et puis en B1 = (A1+A1*C$1)

Ce qui me permet de changer la valeur du pourcentage

Mais qui sait je n'ai peut-être pas compris la question

Qu'est-ce que tu en pense?

Rex

"CAP2" wrote in message
news:#
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur
par


ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de
mes


formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci












Avatar
CAP2
Salut Rex,

c'est vrai que pour réaliser ça, je passerais plutôt par une bonne vieille
formule et la poignée de recopie...

Mais bon, MV a bien demandé "par macro", donc je lui propose une macro.
Quelle émouvante discipline ;o)))

A plus Rex

CAP2

"RT" a écrit dans le message de news:
TpKSc.211651$
Bonjour

Comme je l'ai déjà signalé, je débute en VBA

Mais je me pose la question suivante
A moins que cette manipulation ne fasse partie d'un ensemble plus
complexe,je ne comprends pas l'utilité de faire appel à VBA pour si peu

Moi dans ce cas-ci j'aurais simplement utilisé une fonction Excel
(En partant du principe ""J'utilise pas mon camion 35 Tonnes pour aller
chercher mon pain""

si la collnne commence en A1
J'aurais en B1 =(A1+A1*0.1)
Mieux j'aurais en C1 mis 0.1
et puis en B1 = (A1+A1*C$1)

Ce qui me permet de changer la valeur du pourcentage

Mais qui sait je n'ai peut-être pas compris la question

Qu'est-ce que tu en pense?

Rex

"CAP2" wrote in message
news:#
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la valeur
par


ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause de
mes


formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci












Avatar
RT
Bonjour

Comme je disais
Peut-être que j'ai pas compris la question
Peut-être que je n'étais pas au courant de toutes les données

Le plus important est que

""Keep the customer satisfied"" comme disaient "Simon and Carlfunkel"

A plus tard

Rex

"MV" wrote in message
news:cffsf7$jqt$
bonjour,
J'adhere a ta doctrine !
Dans mon cas j'ai besoin au final que mes cellules aient une valeur et non
une formule, et d'autre part que le pourcentage soit saisi dans une
inputbox...
apres j'essaye d'optimiser au mieux et parcourir toutes les lignes d'une
colonne est a priori toujours plus lent que de laisser excel faire du
calcul

matriciel... ce qu'il fait tres bien et vite...

Et comme je suis à la bourre ben pour l'instant je me satisfais de la
proposition de CAP2.


"RT" a écrit dans le message de
news:TpKSc.211651$
Bonjour

Comme je l'ai déjà signalé, je débute en VBA

Mais je me pose la question suivante
A moins que cette manipulation ne fasse partie d'un ensemble plus
complexe,je ne comprends pas l'utilité de faire appel à VBA pour si peu

Moi dans ce cas-ci j'aurais simplement utilisé une fonction Excel
(En partant du principe ""J'utilise pas mon camion 35 Tonnes pour aller
chercher mon pain""

si la collnne commence en A1
J'aurais en B1 =(A1+A1*0.1)
Mieux j'aurais en C1 mis 0.1
et puis en B1 = (A1+A1*C$1)

Ce qui me permet de changer la valeur du pourcentage

Mais qui sait je n'ai peut-être pas compris la question

Qu'est-ce que tu en pense?

Rex

"CAP2" wrote in message
news:#
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la
valeur




par
ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause
de




mes
formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci
















Avatar
RT
Bonjour

Comme j'ai répondu à MV le plus imporant est qu'il soit contentde la
solution proposé

De toute façon comme je "bricolle" de plus en plus dans les VBA, je suis sûr
que tu dervra encore me répondre souvent

A plus tard

Rex


"CAP2" wrote in message
news:#
Salut Rex,

c'est vrai que pour réaliser ça, je passerais plutôt par une bonne vieille
formule et la poignée de recopie...

Mais bon, MV a bien demandé "par macro", donc je lui propose une macro.
Quelle émouvante discipline ;o)))

A plus Rex

CAP2

"RT" a écrit dans le message de news:
TpKSc.211651$
Bonjour

Comme je l'ai déjà signalé, je débute en VBA

Mais je me pose la question suivante
A moins que cette manipulation ne fasse partie d'un ensemble plus
complexe,je ne comprends pas l'utilité de faire appel à VBA pour si peu

Moi dans ce cas-ci j'aurais simplement utilisé une fonction Excel
(En partant du principe ""J'utilise pas mon camion 35 Tonnes pour aller
chercher mon pain""

si la collnne commence en A1
J'aurais en B1 =(A1+A1*0.1)
Mieux j'aurais en C1 mis 0.1
et puis en B1 = (A1+A1*C$1)

Ce qui me permet de changer la valeur du pourcentage

Mais qui sait je n'ai peut-être pas compris la question

Qu'est-ce que tu en pense?

Rex

"CAP2" wrote in message
news:#
Salut,

voici une procédure pour une colonne et 700 lignes, et ça rame pas du
tout.

Essaie-la et adapte-la à ton cas :

Sub test()
Dim cellule As Range

Range("A1:A700").Select

For Each cellule In Selection
cellule.Offset(0, 1) = [cellule] * 0.1
Next

End Sub

Ca marche ?

CAP2
"MV" a écrit dans le message de news:
cffoup$rej$
Bonjour,
J'ai une colonne sur 200 lignes remplie de valeurs et de quelques
formules


(des totaux intermédiaires)
J'ai besoin d'une macro qui affecte sur la colonne d'a cote la
valeur




par
ligne de la premiere colonne multiplié par un pourcentage.

Je peux faire un "for each in " et parcourir chaque ligne mais c'est
tres


lent.
J'essaye donc avec un ProduitMat et ca plante... suremement à cause
de




mes
formules parsemées dasn mon range...

Une idée quelqu'un ?

Merci