Problème avec des offset

Signaler
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010
-
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Ç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
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

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