Recherche cellule

Résolu
raveno39 Messages postés 53 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je voudrais savoir comment faire pour que le curseur ce place directement dans une cellule quand:
en k4 je mets une valeur et que je veux que le curseur cherche dans une colone la valeur demandée
voici le code que j'ai mis et que j'ai trouve sur le net mais ça marche pô

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("K4")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
'Range("b" & [MATCH(K4,B:B,0)]).Select

'-- ou affiche en haut de l'écran --
Application.Goto Range("b" & [MATCH(K4,B:B,0)]), Scroll:=True
End If
End Sub


excel 2007

10 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    colle ce code dans les propriétés de ta feuille concernée (clic droit sur l'onglet/Visualiser le code), sélectionne la cellule colonne B contenant la valeur saisie en K4. J'ai inclus une gestion d'erreur dans le cas de valeur absente

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x, c, firstAddress As Variant
    On Error Resume Next
    If Not Application.Intersect(Target, Range("K4")) Is Nothing Then
    Range("K4").Select
    x = ActiveCell.Value
    With ActiveSheet.Range("B:B")
    Set c = .Find(x, LookIn:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    End If
    End With
    Range(firstAddress).Select
    If Err.Number <> 0 Then
    MsgBox "Cette valeur est absente colonne B ", , "La recherche ne peut aboutir,"
    Err.Clear
    End If
    End If
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  2. raveno39 Messages postés 53 Statut Membre 15
     
    Merci pour ta réponse qui repond à mes attentes
    j'ai installé ton code et l'ai adapté à mon tableau en modifiant les référence de cellule et ça marche.
    Par contre j'ai voulu m'en servir dans un tableau où la valeurs dans la colonne est une date (ven 06/1), ça ne marche que si je transforme cette date en nombre (49014).
    pourrais-je abuser de ta patient pour m'indiquer comme modifier ton code pour que cela marche avec une date.
    bonne journée
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Faudrait voir comment sont saisies tes dates, pour ven 06/1 si tu saisis la date comme cela, elle est considérée comme texte alors soit tu saisis dans la cellule critère de la même façon soit ven 06/1 qui correspond certainement à une date vendredi 6 janvier 2012 il faut donc saisir la date dans un format alphanumérique reconnu par Excel 6/1/12 par exemple et formater la ou les cellules avec un format personnalisé jjj jj/mm ce qui affichera bien Ven 06/01
    ou jjj jj/m pour afficher Ven 06/1

    et la ça marche
    0
  4. raveno39 Messages postés 53 Statut Membre 15
     
    c'est ce que j'avais fait et cela ne fonctionne pas
    a+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   383
     
    Bonjour,

    Essaie ainsi :

    Dim LaDate As Date
    Dim C As Range
    LaDate = CDate(Range("F1").Value)
    Set C = Columns(2).Find(LaDate, LookIn:=xlValues)
    If Not C Is Nothing Then
        MsgBox C.Address
    End If
    


    Bon dimanche
    0
  7. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   383
     
    re-,

    En partant du principe de Mike, un essai :

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("K4"), Target) Is Nothing Then
        If Not IsError(Application.Match(Target, Columns(2), 0)) Then
            MsgBox Cells(Application.Match(Target, Columns(2), 0), 2).Address
        End If
    End If
    End Sub
    


    Bon dimanche
    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Je crois que Raveno souhaitait sélectionner la cellule colonne B contenant la valeur en K4, en panachant les codes avec celui de Cousinhub que je salue cela pourrait
    donner ceci
    1/ sélection de la valeur
    2/ message si la valeur est absente colonne B
    3/ reformatage de la cellule en standard en fin de procédure

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x As Variant
    If Not Intersect(Range("K4"), Target) Is Nothing Then
    If Not IsError(Application.Match(Target, Columns(2), 0)) Then
    x = Cells(Application.Match(Target, Columns(2), 0), 2).Address
    Range(x).Select
    End If
    If x = False Then MsgBox "Cette valeur est absente colonne B ", , "La recherche ne peut aboutir,"
    End If
    [K4].NumberFormat = "General"
    End Sub

    0
  9. raveno39 Messages postés 53 Statut Membre 15
     
    Les deux formule me vont bien

    merci
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    L'union fait la force et celle d'un forum de référence comme comment ça marche.

    N'oublie pas de mettre le statut de la discussion en résolu que cette discussion serve de référence

    Cordialement
    0