J'aimerais effectuer une petite modification sur une macro. N'étant pas une experte en rédaction de macro, je fais appel à vous.
Ma macro fait une recherche V et colle les valeurs. C'est pour aller chercher les heures travaillées par employé. Je me place dans la première cellule de la bonne journée, puis j'active la macro. J'utilise donc cette macro sur 5 colonnes différentes.
Sub recherchev() ' recherchev Macro ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Classeur1!Tableau1#Data,12,FALSE)" ActiveCell.Select Selection.AutoFill Destination:=ActiveCell.Range("A1:A112"), Type:= _ xlFillValues ActiveCell.Range("A1:A112").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
J'aimerais que le Range("A1:A112") soit variable puisque mon tableau évolue toujours. Le Range devrait être "de la cellule active, jusqu'à la dernière ligne où il y a des informations dans la colonne A).
Oui, j'avais commencé à expérimenter cette piste de solution, mais, comme vous pourrez le voir dans ma réponse à Gyrus, je ne peux pas appliquer directement cette solution.
Je dois avouer que je ne comprends par pourquoi je dois faire -6 à une place et -8 à l'autre étant donné que c'est la même plage... mais bon, au moins ça fonctionne! :)
Sub recherchev() Dim MaPlage As Range Set MaPlage = Range(ActiveCell, ActiveCell.End(xlDown)) ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Classeur1!Tableau1#Data,12,FALSE)" ActiveCell.AutoFill Destination:=MaPlage, Type:=xlFillValues MaPlage.Copy MaPlage.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub
Sub recherchev() Dim MaPlage As Range Set MaPlage = Range(ActiveCell, ActiveCell.End(xlDown)) ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Classeur1!Tableau1#Data,12,FALSE)" ActiveCell.AutoFill Destination:=MaPlage, Type:=xlFillValues MaPlage.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
J'ai modifié un peu parce qu'il est important que toutes les cellules soient sélectionnées pour faire copier puis coller les valeurs. Pour ça, ça fonctionne.
Mon problème c'est qu'il faudrait que "MaPlage" s'arrête à la dernière cellule vide d'une autre colonne (la colonne A). Parce que en fait, l'endroit ou j'applique ma formule, ce sont toutes des cellules vides sauf le total en bas. Présentement, la macro s'arrête à mon total qui se fait écrasé. Est-ce qu'on pourrait l'arrêter 2 cellules au-dessus? J'ai essayé en ajoutant "- 2" après ActiveCell.End(xlDown) mais ça ne fonctionne pas.
Merci :)
Je dois avouer que je ne comprends par pourquoi je dois faire -6 à une place et -8 à l'autre étant donné que c'est la même plage... mais bon, au moins ça fonctionne! :)
Merci!