OVH Cloud OVH Cloud

Recherche de valeur puis calcul en VBa

8 réponses
Avatar
Nikelik
Bonjour,

Quel est la commande VBa pour rechercher les valeurs non nulles d'une
colonne et les multiplier par la valeur d'une cellule fixe?

Very cordialement,

Merci

8 réponses

Avatar
isabelle
bonjour Nikelik,

Range("A1").Copy
With Range("G:G").SpecialCells(xlCellTypeConstants, 23)
.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
End With

isabelle

Bonjour,

Quel est la commande VBa pour rechercher les valeurs non nulles d'une
colonne et les multiplier par la valeur d'une cellule fixe?

Very cordialement,

Merci


Avatar
Nikelik
Mercisabelle,

Entre temps, j'avais réussi à bidouiller quelquechose comme ça :
Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

J'ai mis ton idée, elle est très bien mais bien au dela de mon niveau.

Penses tu que ma solution peut quand meme bien fonctionner?
Et par la meme occasion, comment faire pour effacer les valeurs Zero?

Encore merci!

Nikelik

"isabelle" wrote:

bonjour Nikelik,

Range("A1").Copy
With Range("G:G").SpecialCells(xlCellTypeConstants, 23)
.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
End With

isabelle

Bonjour,

Quel est la commande VBa pour rechercher les valeurs non nulles d'une
colonne et les multiplier par la valeur d'une cellule fixe?

Very cordialement,

Merci





Avatar
Nikelik
Mercisabelle,

Entre temps, j'avais réussi à bidouiller quelquechose comme ça :
Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

J'ai mis ton idée, elle est très bien mais bien au dela de mon niveau.

Penses tu que ma solution peut quand meme bien fonctionner?
Et par la meme occasion, comment faire pour effacer les valeurs Zero?

Encore merci!

Nikelik

"isabelle" wrote:

bonjour Nikelik,

Range("A1").Copy
With Range("G:G").SpecialCells(xlCellTypeConstants, 23)
.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:úlse, Transpose:úlse
End With

isabelle

Bonjour,

Quel est la commande VBa pour rechercher les valeurs non nulles d'une
colonne et les multiplier par la valeur d'une cellule fixe?

Very cordialement,

Merci





Avatar
isabelle
Entre temps, j'avais réussi à bidouiller quelquechose comme ça :
Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

Penses tu que ma solution peut quand meme bien fonctionner?


oui, je ne voie pas de raison que cela ne fonctionne pas, mais dans ce
cas ça ne sera pas une cellule fixe qui sera multiplier mais la cellule
à droite de la cellule active.

Et par la meme occasion, comment faire pour effacer les valeurs Zero?


par "valeur à zero"
veut tu dire, une cellule dont la formule retoune une valeur 0
ou bien
veut tu dire, une cellule vide

isabelle

Avatar
Nikelik
Ben je vourdrais que si le resultat est nul, -> que ça ne marque rien. Du
genre activewindows.displayzero = false, mais qui marche et que pour ma
selection, pas pour toute la page.
Merci encore

"isabelle" wrote:



Entre temps, j'avais réussi à bidouiller quelquechose comme ça :
Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

Penses tu que ma solution peut quand meme bien fonctionner?


oui, je ne voie pas de raison que cela ne fonctionne pas, mais dans ce
cas ça ne sera pas une cellule fixe qui sera multiplier mais la cellule
à droite de la cellule active.

Et par la meme occasion, comment faire pour effacer les valeurs Zero?


par "valeur à zero"
veut tu dire, une cellule dont la formule retoune une valeur 0
ou bien
veut tu dire, une cellule vide

isabelle




Avatar
isabelle
comme ça ?

Selection = ""

isabelle


Ben je vourdrais que si le resultat est nul, -> que ça ne marque rien. Du
genre activewindows.displayzero = false, mais qui marche et que pour ma
selection, pas pour toute la page.
Merci encore

"isabelle" wrote:



Entre temps, j'avais réussi à bidouiller quelquechose comme ça :

Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

Penses tu que ma solution peut quand meme bien fonctionner?


oui, je ne voie pas de raison que cela ne fonctionne pas, mais dans ce
cas ça ne sera pas une cellule fixe qui sera multiplier mais la cellule
à droite de la cellule active.


Et par la meme occasion, comment faire pour effacer les valeurs Zero?


par "valeur à zero"
veut tu dire, une cellule dont la formule retoune une valeur 0
ou bien
veut tu dire, une cellule vide

isabelle






Avatar
Nikelik
En fait, celui que j avais trouvé (activewindows.displayzero = false, ça
marchait bien, mais ça le fait sur toute la feuille.
Mais je voudrais que ça le fasse que sur ma séléection.
Genre si une des cellules est vide, que le résultat le soit aussi au lieu
qu'il me marque un zéro.
Tu vois ce que je veux dire?
Mercisa

"isabelle" wrote:

comme ça ?

Selection = ""

isabelle


Ben je vourdrais que si le resultat est nul, -> que ça ne marque rien. Du
genre activewindows.displayzero = false, mais qui marche et que pour ma
selection, pas pour toute la page.
Merci encore

"isabelle" wrote:



Entre temps, j'avais réussi à bidouiller quelquechose comme ça :

Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

Penses tu que ma solution peut quand meme bien fonctionner?


oui, je ne voie pas de raison que cela ne fonctionne pas, mais dans ce
cas ça ne sera pas une cellule fixe qui sera multiplier mais la cellule
à droite de la cellule active.


Et par la meme occasion, comment faire pour effacer les valeurs Zero?


par "valeur à zero"
veut tu dire, une cellule dont la formule retoune une valeur 0
ou bien
veut tu dire, une cellule vide

isabelle









Avatar
isabelle
re bonjour,

de cette facon ce n'est pas possible de l'appliquer sur une partie de la
feuille, c'est automatiquement appliqué sur toute la feuille.
la seul facon c'est de l'inclure dans la formule.
exemple :
=Si(A1+A2=0;"";A1+A2)

isabelle


En fait, celui que j avais trouvé (activewindows.displayzero = false, ça
marchait bien, mais ça le fait sur toute la feuille.
Mais je voudrais que ça le fasse que sur ma séléection.
Genre si une des cellules est vide, que le résultat le soit aussi au lieu
qu'il me marque un zéro.
Tu vois ce que je veux dire?
Mercisa

"isabelle" wrote:


comme ça ?

Selection = ""

isabelle



Ben je vourdrais que si le resultat est nul, -> que ça ne marque rien. Du
genre activewindows.displayzero = false, mais qui marche et que pour ma
selection, pas pour toute la page.
Merci encore

"isabelle" wrote:



Entre temps, j'avais réussi à bidouiller quelquechose comme ça :


Sub Calcule_Decale()

Selection.Copy Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Formula = "=RC[-1]*R1C1"

End Sub

Penses tu que ma solution peut quand meme bien fonctionner?


oui, je ne voie pas de raison que cela ne fonctionne pas, mais dans ce
cas ça ne sera pas une cellule fixe qui sera multiplier mais la cellule
à droite de la cellule active.



Et par la meme occasion, comment faire pour effacer les valeurs Zero?


par "valeur à zero"
veut tu dire, une cellule dont la formule retoune une valeur 0
ou bien
veut tu dire, une cellule vide

isabelle