Row

Résolu
mann -  
lermite222 Messages postés 9042 Statut Contributeur -
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

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. 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
  2. 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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. 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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Re,
    Y a plus court..
    Else 
    Worksheets("Feuil1").Range("F25") = CelluleTrouvée.Offset(0,2)

    A+
    0