1 pièce(s) jointe(s)
Introduire une formule par code VBA
Bonjour à tous, je suis nouvellement inscrit pour soumettre un problème concernant l'utilisation d'Excel et du VBA, pour insérer dans une cellule précise une fonction grâce à une macro. Je suis plutôt débutant en matière de VBA. Pour automatiser certaines tâches dans un classeur xlsm, macros que j'ai créé. Je cherche à récupérer le texte d'une cellule E6 dans laquelle ce texte est obtenu par formule Concatener. J'ai donc pour ce faire essayer une nouvelle macro. Tout fonctionne, sauf le fait qu' ayant utilisé l'enregistreur de macros Excel, la formule écrite dans cette nouvelle macro reste figée, au niveau de la plage de recherche. (explication dans le fichier xlsx joint). Mon classeur me sert à inventorier des produits, et à chaque nouvel inventaire, j'ai besoin de récupérer les valeurs du mois précédent par rechercheV. Le problème, s'est qu'une colonne est créée tous les mois et cela fait donc changer la plage de recherche. La colonne E (fin de plage) devient F le mois suivant. Je pense qu'il doit être possible au lancement de la macro d'avoir une variable à saisir, qui permettrait de modifier la plage de recherche, et donc le numéro de colonne à retourner.
Voici le texte brut de cette macro "changement de mois"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub ChangM()
' ChangM Macro
' changer la plage de recherche
'
Range("E6").Select
Selection.Copy
Range("J8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],Precinvent!R2C1:R47C17,17,FALSE)"
Range("J8").Select
Selection.AutoFill Destination:=Range("J8:J67")
Range("J8:J67").Select
ActiveWindow.SmallScroll Down:=15
End Sub |