arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007
-
9 août 2007 à 11:06
arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007
-
10 août 2007 à 09:41
Bonjour à tous, j'ai une question sur vba. Je vais essayé de faire simple. J'ai un premier tableau sur une feuille qui ne bougera pas, une deuxieme tableau sur une deuxieme feuille et ce tableau variera selon les données que j'aurai entré, et enfin un troisieme tableau qui dont les cellules seront égales à un recherche v d'une valeur du deuxieme tableau dans le premier et donc sera forcement lui même variable. Apres plusieurs test je pense que le plus simple serait de faire un recherche v classic et de connaitre la valeur de la derniere range en bas a droite du second tableau tableau (par exemple "E1") pour pouvoir l'effectuer. Si vous avez une idée de la manière dont je pourrais faire pour trouver cette range ou une autre manière d'effectuer mon recherche v, n'hestiter pas car je galère un peu.lol.
Merci par avance.
arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007 10 août 2007 à 09:41
En fait j'ai trouvé la solution, c'était tout bête mais je viens juste de me mettre au VBA, donc un peu d'indulgence.lol.. J'espère que ça pourra aider d'autres personnes.
Sub macro()
'on cherche à connaitre les coordonnées de la dernière cellule(en bas à droitre du tableau)
Worksheets("nom de la feuille2").Select
Dim k As Integer
Dim l As Integer
'le tableau de la feuille 2 est composé de l colonnes et de k lignes
k = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
l = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
'on selectionne la feuille ou nous voulons mettre les résultats issus de la rechercheV(pour nous la feuille3)
Worksheets("feuille3").Select
'le tableau de la feuille 1 ne varie pas, mais nous aurions pu réaliser la même opération si ce n'était pas la cas.Range("A1").Formula "VLOOKUP('nom de la feuille2'!A1,'nom de la feuille1!$A$3:$AZ$8,4,FALSE)"
Range("A1").Select
Range("A1").Formula = "=VLOOKUP('nom de la feuille2'!A1,'nom de la feuille1'!$A$3:$AZ$8,4,FALSE)"
Range("A1").Select
'on réalise la rechercheV sur toutes les valeurs du tableau de la feuille2 (dont la dimension varie)
Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(k, 1)), Type:=xlFillDefault
Range(Cells(1, 1), Cells(k, 1)).Select
Selection.AutoFill Destination:=Range(Cells(1, 1), Cells(k, l)), Type:=xlFillDefault
Range(Cells(1, 1), Cells(k, l)).Select
End Sub
Voilà, en tout cas ça marche trés bien, j'éspère que la réponse est à peu près clair car ma question ne l'était pas apparamment.lol.
@+