Comparaison des valeurs des cellules dans une colonne avec la valeur de ComboBox saisie par l'user

Je ne suis pas en mesure de comparer les valeurs d'une cellule dans une colonne avec une input de valeur de combobox.

J'ai 2 tests de classurs (contient ComboBox2) et test1 (contient une colonne dont les cellules sont comparées avec ComboBox2.value)

J'ai une boucle for pour y parvenir.

For i = 1 To LastRow If wkbSource.Worksheets(sheet_no).Cells(i, 1) = ComboBox2.Value Then 'do something End If Next i 

J'ai débogué le code et j'ai compris que if statement ne s'exécute pas même après une correspondance.

Comment puis-je le réparer?

MODIFIER :

Aussi, j'aimerais savoir comment append deux valeurs de cellule, car l'ajout direct d'une sortie est incorrect. Par exemple

wkbSource.Worksheets(sheet_no).Cells(i, 1) + wkbSource.Worksheets(sheet_no).Cells(i, 3)

Cela était dû (encore une fois) à la Malédiction de comparaison de variantes . Voir en particulier le "MISE À JOUR 4" de cette question.

 If wkbSource.Worksheets(sheet_no).Cells(i, 1) = ComboBox2.Value Then 

Ceci compare deux Variant s. Mais, lorsque la cellule contient un nombre, et n'est pas formellement formaté sous forme de Text , non précédé de ' lorsqu'il est entré. Excel considérera comme un nombre et donc c'est .Value sera un nombre Variant . D'autre part, Combobox2.Value returnné un text Variant , donc la comparaison a échoué!

Lors de la comparaison de deux variables Variant , ces opérations échoueront:

  2 = "2" ' False 3 > "2" ' False 

Par conséquent, la solution dans votre situation particulière est de forcer la comparaison de texts, en utilisant les propriétés .Text du contrôle et de la cellule. Voici comment vous voudriez, par exemple, résumer les cellules qui correspondent à votre requête:

 For i = 1 To LastRow If Trim(wkbSource.Worksheets(sheet_no).Cells(i, 1).Text) = Trim(ComboBox2.Text) Then 'do something if IsNumeric(wkbSource.Worksheets(sheet_no).Cells(i, 1).Value2) Then _ mySum = mySum + wkbSource.Worksheets(sheet_no).Cells(i, 1).Value2 End If Next i