Obtenir des valeurs à partir d'une autre feuille dans Excel en utilisant VBA

Bonjour, je suis nouveau dans excel et j'ai quelques problèmes pour obtenir des valeurs à partir d'autres feuilles.

J'ai quelques valeurs dans excel(feuil2) 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 je suis en utilisant mon code dans sheet2, j'obtiens la bonne réponse mais quand je essaie de l'utiliser dans une feuille différente, j'obtiens le résultat des valeurs correspondent aux cellules de feuille actuelles et non à sheet2.

  • je veux obtenir la somme de chaque colonne dans la ligne 4. et je parviens à le faire mais je ne peux l'utiliser que dans sheet2.

Im utilisant "avec L'Application.WorksheetFunction " et je veux changer cela pour obtenir les valeurs de sheet2.

Pouvez-vous m'aider avec cela et comment définir sheet2 comme feuille d'activation.

J'espère que ma question est claire.

Merci

26
demandé sur Ben Rhys-Lewis 2010-11-10 23:29:08

5 réponses

Essayez

 ThisWorkbook.Sheets("name of sheet 2").Range("A1")

Pour accéder à une plage dans la feuille 2 indépendamment de l'emplacement de votre code ou de la feuille actuellement active. Pour faire de la feuille 2 la feuille active, essayez

 ThisWorkbook.Sheets("name of sheet 2").Activate

Si vous avez juste besoin de la somme d'une ligne dans une feuille différente, il n'est pas nécessaire d'utiliser VBA du tout. Entrez une formule comme celle - ci dans la feuille 1:

=SUM([Name-Of-Sheet2]!A1:D1)
36
répondu Doc Brown 2010-11-10 20:41:29

Ce sera (pour vous un exemple très spécifique)

ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval

Ou

someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value

Donc, obtenez unF1 Cliquez et lisez à propos de la collection de feuilles de calcul, qui contient des objets de feuille de calcul, qui à son tour a une collection de cellules, contenant des objets de cellule...

16
répondu jpinto3912 2010-11-10 20:35:39
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

Cela comparera les valeurs de cellules de deux feuilles et si elles correspondent, placez la valeur sur la feuille 2 dans la colonne L.

1
répondu James Heffer 2016-07-16 08:16:07

SomeVal = ActiveWorkbook.feuilles de travail ("Sheet2").cellules (aRow, aCol).Valeur

N'a pas fonctionné. Cependant, le code suivant n'a fonctionné que pour moi.

SomeVal = ThisWorkbook.Feuilles(2).cellules (aRow, aCol).Valeur

0
répondu RanonKahn 2015-05-11 06:33:38

Essayez la commande d'activation de la feuille de calcul avant d'avoir besoin des données de la feuille:

objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate
0
répondu Mike 2017-06-20 13:45:35