1 votes

Comment prévenir que le VBA écrit pour un classeur Excel n'affecte d'autres classeurs

J'ai une fonction VBA dans Excel comme donné ci-dessous pour récupérer les valeurs de la cellule correspondante dans la feuille précédente. Cela fonctionne bien lorsque seul ce classeur (où cette formule est présente) est ouvert. Si j'ouvre un autre classeur Excel par exemple workbook2, cette fonction prevsheet du premier classeur récupère les valeurs du deuxième classeur perturbant toutes les valeurs du premier classeur. Comment puis-je modifier cette formule pour que cette fonction fonctionne/récupère les valeurs pour ce classeur au lieu des autres classeurs ouverts.

Function PrevSheet(rCell As Range)
        Application.Volatile

        Dim i As Integer
        i = rCell.Cells(1).Parent.Index
        PrevSheet = Sheets(i - 1).Range(rCell.Address)
    End Function

1voto

Siva Prasad Points 93

J'ai trouvé la solution pour cela.

ajouter "ThisWorkbook" à la ligne de code suivante

PrevSheet = ThisWorkbook.Sheets(i - 1).Range(rCell.Address)

le rendant ainsi

PrevSheet = ThisWorkbook.Sheets(i - 1).Range(rCell.Address)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X