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

RE pb de multiplication en vba

3 réponses
Avatar
Franck
Merci à tous ceux qui m'ont répondu

Mais je pense que j'ai mal exposé mon probleme.
En fait je souhaite réaliser en vba la multiplication d'une plage de valeurs
par une [constante].
Voici mon scenario: je copie les valeurs d'une colonne de ma feuille F1
et je veux que les valeurs soient collées dans la feuille F2 mais en ayant
toutes été multipliées par k ma constatnte.Tout ceci en vba.
Quelqu'un peut il m'aider S'il vous plait
Merci


Message d'origine:
Bonjour,
Pour multiplier les valeurs d'une colonne de mon tableau par 100,
je rentre 100 dans une cellule et je fais copier->collage
spécial->multiplication sur les données de ma colonne
Je voudrais maintenant faire la même chose en vba mais sans avoir à saisir
100 dans une cellule, la copier et utiliser la syntaxe classique suivante:
Selection.Copy
Range("T2:T12").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False


En fait que lors de mon "paste" que toutes les valeurs soient multipliées
par 100
Quelqu'un peut il m'aider S'il vous plait
Merci

3 réponses

Avatar
ChrisV
Bonjour Franck,

je copie les valeurs d'une colonne de ma feuille F1
la dimension de la matrice à traiter est-elle fixe ou variable...?


que les valeurs soient collées dans la feuille F2
quelle est la destination précise...?


...
Avec la plage de données en F1 nommée ici Zn (matrice verticale de 30
éléments), et en supposant que tu veuilles inscrire les résultats de la
multiplication en Feuil2!C5

Sub zaza()
[C5:C34] = [100*Zn]
End Sub


ChrisV


"Franck" a écrit dans le message de
news:O%
Merci à tous ceux qui m'ont répondu

Mais je pense que j'ai mal exposé mon probleme.
En fait je souhaite réaliser en vba la multiplication d'une plage de
valeurs

par une [constante].
Voici mon scenario: je copie les valeurs d'une colonne de ma feuille F1
et je veux que les valeurs soient collées dans la feuille F2 mais en ayant
toutes été multipliées par k ma constatnte.Tout ceci en vba.
Quelqu'un peut il m'aider S'il vous plait
Merci


Message d'origine:
Bonjour,
Pour multiplier les valeurs d'une colonne de mon tableau par 100,
je rentre 100 dans une cellule et je fais copier->collage
spécial->multiplication sur les données de ma colonne
Je voudrais maintenant faire la même chose en vba mais sans avoir à saisir
100 dans une cellule, la copier et utiliser la syntaxe classique suivante:
Selection.Copy
Range("T2:T12").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False


En fait que lors de mon "paste" que toutes les valeurs soient multipliées
par 100
Quelqu'un peut il m'aider S'il vous plait
Merci




Avatar
J-Dan
Franck,

2 exemples pour copier la col B de la feuille1 sur la col
B de la feuille2.
'------------------------------------------------------
x = 12
For Each cel In Worksheets("Feuil1").Range("B1", Range _
("B65536").End(xlUp))
Worksheets("Feuil2").Range(cel.Address) = cel * x
Next
'------------------------------------------------------

ou beaucoup plus rapide dans l'execution (environ 15*):
'------------------------------------------------------
x = 12
Worksheets("feuil1").Activate
Worksheets("feuil1").Range("B1", Range("B65536").End _
(xlUp)).Activate
Worksheets("feuil2").Range("B1").Resize _
(Selection.Rows.Count, 1) = x
Selection.Copy
Worksheets("Feuil2").Activate
Worksheets("Feuil2").Range("B1").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlMultiply
'------------------------------------------------------

J-Dan

-----Message d'origine-----
Merci à tous ceux qui m'ont répondu

Mais je pense que j'ai mal exposé mon probleme.
En fait je souhaite réaliser en vba la multiplication
d'une plage de valeurs

par une [constante].
Voici mon scenario: je copie les valeurs d'une colonne
de ma feuille F1

et je veux que les valeurs soient collées dans la
feuille F2 mais en ayant

toutes été multipliées par k ma constatnte.Tout ceci en
vba.

Quelqu'un peut il m'aider S'il vous plait
Merci


Message d'origine:
Bonjour,
Pour multiplier les valeurs d'une colonne de mon tableau
par 100,

je rentre 100 dans une cellule et je fais copier->collage
spécial->multiplication sur les données de ma colonne
Je voudrais maintenant faire la même chose en vba mais
sans avoir à saisir

100 dans une cellule, la copier et utiliser la syntaxe
classique suivante:

Selection.Copy
Range("T2:T12").Select
Selection.PasteSpecial Paste:=xlPasteAll,
Operation:=xlMultiply, _

SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False


En fait que lors de mon "paste" que toutes les valeurs
soient multipliées

par 100
Quelqu'un peut il m'aider S'il vous plait
Merci


.



Avatar
dadda
Bonjour tout le monde;
Bonjour Franck ;
Pour que tu aies la pleine liberté de tes décisions, je te
propose 3 boites de dialogues (inputbox).
La première te permettra d'indiquer la zone à copier;
La seconde te permettra de choisir le coefficient de
multiplication que tu veux ;
La troisième te permettra de choisir l'endroit où tu
souhaites coller.
Comment faire ?
Tu saisis le code ci-après dans un module standard;
tu l'exécutes;
Lorsque la première inputbox s'affiche, tu selectionnes
avec ta souris la zone à copier et tu cliques OK;
Lorsque la deuxième inputbox s'affiche, tu saisis le
coefficient de multiplication que tu veux;
tu cliques OK;
Lorsque la troisième inputbox s'affiche tu selectionnes la
première cellule à partir de laquelle tu veux coller
J'espère que c'est clair.
Voici le code (attention aux retours à la ligne):

Sub Copier_Multiplier_Coller()
On Error Resume Next
Set x = Application.InputBox("Selectionner la plage à
copier", "Copier_Multiplier_Coller", Type:=8)
Worksheets("feuil2").Activate
y = Application.InputBox("Saisissez le coefficient" & Chr
(10) & "de multiplication")
x.Copy Destination:=Worksheets
("feuil2").Application.InputBox("Selectionner la première
cellule" & Chr(10) & " à partir de laquelle il faut
coller ?", Type:=8)
For Each c In ActiveSheet.UsedRange
c.Value = c.Value * y
Next
End Sub

dadda



-----Message d'origine-----
Merci à tous ceux qui m'ont répondu

Mais je pense que j'ai mal exposé mon probleme.
En fait je souhaite réaliser en vba la multiplication
d'une plage de valeurs

par une [constante].
Voici mon scenario: je copie les valeurs d'une colonne de
ma feuille F1

et je veux que les valeurs soient collées dans la feuille
F2 mais en ayant

toutes été multipliées par k ma constatnte.Tout ceci en
vba.

Quelqu'un peut il m'aider S'il vous plait
Merci


Message d'origine:
Bonjour,
Pour multiplier les valeurs d'une colonne de mon tableau
par 100,

je rentre 100 dans une cellule et je fais copier->collage
spécial->multiplication sur les données de ma colonne
Je voudrais maintenant faire la même chose en vba mais
sans avoir à saisir

100 dans une cellule, la copier et utiliser la syntaxe
classique suivante:

Selection.Copy
Range("T2:T12").Select
Selection.PasteSpecial Paste:=xlPasteAll,
Operation:=xlMultiply, _

SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False


En fait que lors de mon "paste" que toutes les valeurs
soient multipliées

par 100
Quelqu'un peut il m'aider S'il vous plait
Merci


.