[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 -
Ivan-hoe Messages postés 433 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un tableau excel qui a cette forme :
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
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:
- [Excel] VB traitement d'une grille
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Si ou excel - Guide
3 réponses
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.
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
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!!!!:)