Bonjour, je suis nouveau dans Excel et j’ai quelques problèmes pour obtenir les valeurs d’autres feuilles.
J'ai quelques valeurs dans Excel (sheet2) par exemple:
A B C D
- - - -
1 | 2 5 9 12
2 | 5 8 4 5
3 | 3 1 2 6
Je travaille avec ces valeurs dans sheet2 et je veux obtenir le résultat dans sheet1. Lorsque j'utilise mon code dans sheet2, j'obtiens la bonne réponse, mais lorsque j'essaie de l'utiliser dans différentes feuilles, le résultat des valeurs correspond aux cellules actuelles de la feuille et non à sheet2.
J'utilise "With Application.WorksheetFunction" et je veux changer cela pour obtenir les valeurs de sheet2.
Pouvez-vous s'il vous plaît m'aider avec cela et comment définir feuille2 comme feuille d'activation.
J'espère que ma question est claire.
Je vous remercie
Essayer
ThisWorkbook.Sheets("name of sheet 2").Range("A1")
pour accéder à une plage de la feuille 2 indépendamment de l’emplacement de votre code ou de la feuille active. Pour que la feuille 2 devienne la feuille active, essayez
ThisWorkbook.Sheets("name of sheet 2").Activate
Si vous avez simplement besoin de la somme d'une ligne dans une feuille différente, vous n'avez absolument pas besoin d'utiliser VBA. Entrez une formule comme celle-ci dans la feuille 1:
=SUM([Name-Of-Sheet2]!A1:D1)
Ce sera (pour vous exemple très spécifique)
ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval
OR
someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value
Obtenez donc un F1 clic et lisez sur la collection de feuilles de calcul, qui contient des objets de feuille de calcul, qui à son tour contient une collection de cellules, contenant des objets de cellule ...
Sub TEST()
Dim value1 As String
Dim value2 As String
value1 = ThisWorkbook.Sheets(1).Range("A1").Value 'value from sheet1
value2 = ThisWorkbook.Sheets(2).Range("A1").Value 'value from sheet2
If value1 = value2 Then ThisWorkbook.Sheets(2).Range("L1").Value = value1 'or 2
End Sub
Ceci comparera les valeurs de deux feuilles et si elles correspondent, placer la valeur sur la feuille 2 dans la colonne L.
SomeVal = ActiveWorkbook.worksheets ("Sheet2"). Cells (aRow, aCol) .Value
n'a pas marché. Cependant, le code suivant ne fonctionnait que pour moi.
SomeVal = ThisWorkbook.Sheets (2) .cells (aRow, aCol) .Value
Essayez la commande d'activation de feuille de calcul avant d'avoir besoin des données de la feuille:
objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate