[Excel] VB traitement d'une grille

LeTom46 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un tableau excel qui a cette forme :


                  colonneA  colonne B  colonne C
ligne1            2               3             
ligne2            3               1       
ligne3            2               4
ligne4            ...             ...

Je voudrai que dans la colonne C il y ai un résultat en fonction des 2 autres colonne.
Sauf que c'est un traitement un peu particulier.J'ai la grille suivante :

                 4       2   3   4   4
ColonneA         3       2   3   3   4
                 2       1   2   2   3
                 1       1   1   1   2   

                         1   2   3   4
                           ColonneB

Donc pour mon exemple on aurait comme résultat :
                  colonneA  colonne B  colonne C
ligne1            2               3          2          
ligne2            3               1          2
ligne3            2               4          3


Je ne sais pas comment faire ce traitement...
Il faut que cela soit automatisé, donc que je ne rentre que les valeurs dans colonneA et colonneB.

J'ai donc 2 problèmes :
- le premier : comment faire pour sélectionner les lignes et lui dire de passer à la suivante à chaque fois.
- le deuxième faire le traitement : j'avais pensé à faire une série de if mais bon à mon avis ça risque d'être lourd...

Je vous remercie.

Sportivement
Tom
A voir également:

3 réponses

Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Salut LeTom,
est-ce que tu viens de Savoie ?

ci-dessous une proposition pour ton problème, en passant par une fonction personnalisée :

Dans ta grille de correspondances telle que tu la présentes, COLVALA est la colonne des valeurs de A et LIGVALB est la ligne des valeurs de B

4 2 3 4 4
ColonneA 3 2 3 3 4
2 1 2 2 3
1 1 1 1 2

1 2 3 4
ColonneB


Function INTERSECTION(VALEURA As Integer, VALEURB As Integer) As Integer
Dim COLVALA As Range, LIGVALB As Range

Set COLVALA = Columns(3) 'à adapter
Set LIGVALB = Rows(1) 'à adapter

VALEURA = COLVALA.Find(VALEURA, , , xlWhole, xlByColumns).Row 'trouve la ligne corresondant à la valeur chechée
VALEURB = LIGVALB.Find(VALEURB, , , xlWhole, xlByRows).Column ' trouve la colonne correspondant à la valeur cherchée

INTERSECTION = Cells(VALEURA, VALEURB).Value ' renvoie la valeur à l'intersection

End Function

Après, dans ta colonne C, tu tapes ta formule avec ta fonction personnalisée :

colonneA colonne B colonne C
ligne1 2 3 =INTERSECTION(A2;B2)
ligne2 3 1 =INTERSECTION(A3;B3)
ligne3 2 4 =INTERSECTION(A4;B4)

C'est peut-être pas le plus simple, mais ça devrait marcher.
I.
1
LeTom46 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton aide:)

Ca marche nikel.

En revanche non je ne viens pas de savoie. C'est pour mon pseudo?
46 = Très grand pilote moto...

Allé je vous aide... Ca commence par Val...... et ça fini par ROSSI!!!!:)
0
LeTom46 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

J'ai un problème avec ta fonction.


Elle marche bien seulement quand je change la valeur d'une cellule, on dirait que la fonction ne se réexécute pas.
En fait je suis obligé de sélectionner la case et de faire valider pour que cela traite avec la nouvelle valeur.
Sinon ça met #VALEUR à la place de la valeur.

Comment faire pour "actualiser" les cellules?


MERCI

Tom
0
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Je ne sais pas ! Ici, ça marche. Est ce que F9 résout le problème ?
0