Problème de macro - calcul en fonction d'une variable

cs_FlyingAlex Messages postés 17 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2010 - 8 mai 2009 à 15:00
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 9 mai 2009 à 19:02
Amis du jour bonjour!

Alors tout d'abord j'ai un petit souci.
J'ai créé sous Excel une combobox qui prend des valeurs suivant une liste dans une autre feuille, jusque la ok.
Maintenant, suivant le choix dans cette combobox, une opération doit être faite.
Les valeurs de cette combobox sont dans un tableau  la premiere ligne, le calcul doit se faire avec la cellule juste en dessous de la ligne.
Pour faire ceci, j'ai créé une variable p qui prend la valeur de la combo et qui vérifie toutes les cellules de la liste. Ce que j'aimerai faire c'est lui dire que si  une valeur de la liste = p, alors faire le calcul avec la cellule du dessous!

Mon code:

Me.txtqtty.Value = xMe.comboPNsizebox.Value p<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>


Set Plage = Sheets("Quantity").Range("B1:K1")
For Each Cell In Plage
    If Cell.Value = p Then
        y = x - Cell.Row(2).Value
       
End If
Next Cell

C'est l'endroit que j'ai surligne en rouge qui bloque et je ne vois pas comment faire.
J'espère que vous m'avez compris, si il y a un problème n'hésitez pas a me le dire, ou si vous pensez a un autre moyen d'arriver a mes fins

Merci de m'avoir lu!!

Alex


 

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mai 2009 à 15:51
Salut
Regarde la propriété Offset d'une cellule, exemple :
   Selection.Offset(0, 2).Value

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_FlyingAlex Messages postés 17 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2010
8 mai 2009 à 18:07
Salut Jack,

J'ai regardé mais ce n'est pas vraiment ce que je cherche.
Je préférerai lui dire de faire une opération pour la cellule au dessous de celle qui est égale a p (je sais un peu complique)
Ah oui ca bloque a cette ligne :
  y = x - Cell.Row(2).Value

Je pense que j'écris mal le code mais je n'arrive pas a trouver autre chose.
PS : désole pour les accents manquants et autres, je suis sur un clavier américain.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>












 
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 mai 2009 à 19:02
Mais que penses-tu que veuille dire ce Cell.Row(2) ?
A priori, cette syntaxe est incorrecte puisque tu ne désignes qu'une ligne, pas de colonne.

Au dessous de celle égale à p, c'est
      Cell.Offset(1, 0).Value
Regarde l'explication de Offset dans l'aide

Attention aussi : Tu as appelé ta variable "Cell" : Cela ressemble à un mot clé du langage : Risque de blocage, c'est peut-être la ton erreur

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous