Problème avec des offset

cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010 - 22 oct. 2008 à 15:19
cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010 - 23 oct. 2008 à 11:31
Bonjour


Dans mon code je recherche une valeur (venant d'une textbox) dans une colonne puis des que la valeur est trouvée, elle renvoie grace aux offset d'autres valeurs dans des text box...le problème c'est que je n'arrive pas a renvoyer des données comme si le activecell.select ne servait à rien.
Auriez vous une idée? Merci


Private Sub New_component_Change()


Dim wb As Workbook
Dim var As Variant
var = New_component.Value 'textbox principale


Workbooks("Editeur_ecn.xls").Worksheets("EENSART_REF").Activate
For Each cell In Range("A1:A65536")
If cell.Value = var Then
ActiveCell.Select
With ActiveCell
New_desfr = .Offset(0, 2) 'textbox de renvoie
New_adddesfr = .Offset(0, 3) 'textbox de renvoie
End With


For Each wb In Workbooks
       If Left(wb.Name, 1) = "F" Then
           Workbooks(wb.Name).Worksheets("ECN Number").Activate
           Exit For
       End If
Next
End If
Next cell


End Sub

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 oct. 2008 à 10:54
Ça dépend peut-être de ce que tu recherches comme valeur.
Disons que la valeur est un nombre... Il se peut que ta recherche soit faussée par la valeur de ces nombres, c'est-à-dire que cell.Value peut contenir 123 et var "123". Les 2 valeurs sont différentes puisque la première est un nombre et la 2e est une chaîne.

Essaie plutôt comme ceci
If CStr(cell.Value) = CStr(var) Then .....

Tu pourrais aussi regarder du côté de la fonction  Find. Ça évite de devoir boucler sur toutes les cellules et ça accélère le code, en principe.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010
23 oct. 2008 à 11:31
Merci à tous, mais j'ai fait différemment en utilisant FIND comme proposé par Mpi

Dim CelTrouvee as range
set celtrouvee=range("a1:a" & rows.count).find(what:=...) if not celtrouvee is nothing then
New_desfr = celtrouvee.Offset(0, 2) ' colonne B
New_adddesfr = celtrouvee.Offset(0, 3) ' Colonne C endif
0
Rejoignez-nous