[Excel] VB traitement d'une grille
Fermé
LeTom46
Messages postés
30
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
15 mai 2008
-
13 mars 2008 à 11:06
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 - 17 mars 2008 à 18:30
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 - 17 mars 2008 à 18:30
A voir également:
- [Excel] VB traitement d'une grille
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
3 réponses
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
13 mars 2008 à 13:04
13 mars 2008 à 13:04
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.
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.
LeTom46
Messages postés
30
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
15 mai 2008
14 mars 2008 à 14:25
14 mars 2008 à 14:25
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
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
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
17 mars 2008 à 18:30
17 mars 2008 à 18:30
Je ne sais pas ! Ici, ça marche. Est ce que F9 résout le problème ?
13 mars 2008 à 15:39
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!!!!:)