Row

Résolu
mann -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Un ptit peu d'aide svp...
Voilà j'ai un pas de programme pour chercher un code dans une feuille... ça fonctionne bien... mais seulement quand je suis dans la feuille active.
Comment faire pour que ça fonctionne dans n'importe quelle feuille?
Merci de m'aider.

Sub test()

Dim Numéro As String, Ligne As Long
Dim CelluleTrouvée As Range, Col As Integer

Numéro = ["fg280410"]

With Worksheets("Feuil2")
Set CelluleTrouvée = .Range("b4:c122").Find(What:=Numéro, _
LookIn:=xlValues, LookAt:=xlWhole)
End With
If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 2
toto = Cells(Ligne, Col).Value

MsgBox ("trouvé : ligne = " & Ligne & " , colonne = " & Col)
Worksheets("Feuil1").Range("F25") = toto
MsgBox "La valeur trouvée """ & toto & """" & " a été copié en feuil1, cellule F25."
End If

End Sub

Lorsque je suis en feuil1 ... rien ne se passe...
@++

4 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Je n'ai pas bien compris, tu veux rechercher dans une feuille X et recopier dans Feuil1 ?
Déja, pour valider dans toute les feuilles..
With ActiveSheet

à la place de
With Worksheets("Feuil2")

Et explique un peu mieux stp.
A+
0
mann
 
Bonjour Et merci de ta réponse.
En fait je travaille dans la feuilx et mon tableau de recherche se trouve en feuil2.
De ce fait mon programme ne fonctionne pas...
Il ne fonctionne que lorsque je suis dans ma feuil2...
Voilà... Merci de ton aide.
@+
0
Paf
 
bonjour,
remplacer cette ligne :
With Worksheets("Feuil2")
par:
With Worksheets(ActiveSheet.Name)
bonne suite

edit : à la relecture, je suis complètement à coté ! la recherche devant s'effectuer en feuille 2, si finalement j'ai tout compris

reedit de plus c'est la m^me proposition que lermite222 en plus compliquée inutilement!

je retourne à la pêche
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
J'ai tester la fonction et la valeur cherchée se transcrit dans la feuille active quel qu'elle soit.
   
Sub test()   
Dim Numéro As String   
Dim CelluleTrouvée As Range   
    Numéro = ["fg280410"]   
    With Worksheets("Feuil2")   
        Set CelluleTrouvée = .Range("b4:c122").Find(What:=Numéro, _   
        LookIn:=xlValues, LookAt:=xlWhole)   
    End With   
    If CelluleTrouvée Is Nothing Then   
        MsgBox "pas trouvé"   
    Else   
        ActiveSheet.Range("F25") = CelluleTrouvée   
    End If   
End Sub   

A+
Edit : La macro DOIT se trouver dans un module général (.bas)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
mann
 
Problème résolu comme suit :
Sub test()
Dim Numéro As String, Ligne As Long
Dim CelluleTrouvée As Range, Col As Integer
Dim toto
Numéro = ["FG280210"]
With Worksheets("Feuil2")
Set CelluleTrouvée = .Range("b4:c122").Find(What:=Numéro, _
LookIn:=xlValues, LookAt:=xlWhole)

If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 2
toto = .Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = " & Ligne & " , colonne = " & Col)
Worksheets("Feuil1").Range("F25") = toto
MsgBox "La valeur trouvée """ & toto & """" & " a été copié en feuil1, cellule F25."
End If
End With
End Sub

Merci encore et @++ pour de nouvelles aventures...
:-)
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Re,
Y a plus court..
Else 
Worksheets("Feuil1").Range("F25") = CelluleTrouvée.Offset(0,2)

A+
0