IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recherche une date dans la feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut Recherche une date dans la feuille
    Bonjour

    Voilà, cela fait plusieurs jour que je cherche une solution, pour rechercher via une Macro

    Soit avec le Calendar ou une textbox, ou même une inputbox, entrer une date faire la recherche sur une ligne et selectionner la date une fois trouvé. mais avec le format date cela s'avère plus difficile que je ne croyais.
    Donc en cherchant j'ai trouvé quelques codes, mais ils ne fonctionnaient pas tous j'en ai gardé un qui trouve bien la date, mais il ne sélectionne pas la cellule et pour la suite j'aurais besoin que cette case soit sélectionnée.

    Ci joint le code si quelqu'un à une idée. Merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub CB_OK2_Click()
    Dim TheDate As Long, Index As Variant
     
        Range("A4").Select
    TheDate = ActiveCell
     
        With Worksheets("Planning")
            Index = Application.Match(TheDate, .Range("C3:BDF3"), 0)
        End With
     
        If IsError(Index) Then
            MsgBox "Résultat négatif. Rien trouvé.", vbOKOnly + vbInformation, "Résultat"
        Else
            MsgBox "La date " & Format(TheDate, "dd/mm/yyyy") & " existe. Elle est représentée par " & _
            "l'item " & Index & " de la plage de cellules.", vbInformation + vbOKOnly, "Résultat"
     
     
        End If
    End Sub

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Essai avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Private Sub CB_OK2_Click()
     
        Dim TheDate As Long, Index As Variant
     
        TheDate = Range("A4")
     
        With Worksheets("Planning")
     
            Index = Application.Match(TheDate, .Range(.Cells(3, 1), .Cells(3, .Columns.Count)), 0)
     
            If IsError(Index) Then
     
                MsgBox "Résultat négatif. Rien trouvé.", _
                       vbOKOnly + vbInformation, _
                       "Résultat"
     
            Else
     
                MsgBox "La date '" & Format(TheDate, "dd/mm/yyyy") & "' existe. Elle est située en cellule '" & _
                       .Cells(3, Index).Address(0, 0) & _
                       "' de la plage de cellules.", _
                       vbInformation + vbOKOnly, _
                       "Résultat"
     
                .Cells(3, Index).Select
     
            End If
     
        End With
     
    End Sub
    Hervé.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut
    Exactement çà Merci encore

  4. #4
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Hello,

    Je n'arrive pas à faire fonctionner votre macro depuis une textbox.

    TheDate = Me.TextBoxDate.Value

    Erreur : Incompatibilité de type

    Merci pour votre aide.
    Philippe

  5. #5
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par goninph Voir le message
    Je n'arrive pas à faire fonctionner votre macro depuis une textbox.
    Il faut contrôler avant d'utiliser car si ta textbox ne contient pas un date valide cela ne peut pas fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim TheDate As Date
        If IsDate(Me.TextBoxDate.Value) Then
            TheDate = CDate(Me.TextBoxDate.Value)
        Else
            MsgBox "Date incorrecte"
        End If

  6. #6
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    salut
    démo avec
    max(row(....) recherche verticaleou
    max(column(...)recherche horizontale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Sub test()
    'trouve la ligne de la date
    'thedate toujours en long pour les dates (because auto conversion)
        Dim TheDate&, resultat&
        With Sheets("Planning")    'sheets a adapter
            '
            TheDate = .Range("A4").Value    ' date  en long (exemple pour cellule a adapter)
            'TheDate = clng(cdate(textbox1.text))    ' date  en long (exemple pour textbox  a adapter)
     
            '-----------------------------------------------------------------------------
            'exemple recherche dans  1 colonne
            'plage = .Range("C3:C" & .Cells(Rows.Count, 3).End(xlUp).Row).Address(0, 0)    'plage de recherche en string
            'sens = "ROW"
     
            '------------------------------------------------------------------------------
     
            'exemple recherche dans  1 ligne
            plage = .Range("C3:CBF3").Address(0, 0)    'plage de recherche en string
            sens = "COLUMN"   
     
            '------------------------------------------------------------------------------
            'Formule concatènée
            resultat = Evaluate("=MAX(" & sens & "(" & .Name & "!" & plage & ")*(" & .Name & "!" & plage & "=" & TheDate & "))")
            '
            'voir la formule
            Debug.Print "=MAX(" & sens & "(" & .Name & "!" & plage & ")*(" & .Name & "!" & plage & "=" & TheDate & "))"
            '
        End With
        If resultat > 0 Then
            MsgBox sens & " " & resultat
        Else
            MsgBox "date non trouvée"
        End If
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Chercher une date dans différentes feuilles d'un classeur et retour du numero de la feuille
    Par nevermind900 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/09/2013, 18h08
  2. Réponses: 18
    Dernier message: 05/04/2012, 11h06
  3. [XL-2003] recherche emplacement d'une date dans une autre feuille
    Par wuging dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 27/08/2010, 16h19
  4. Rechercher une valeur dans plusieurs feuilles
    Par modus57 dans le forum Excel
    Réponses: 28
    Dernier message: 30/03/2008, 18h54
  5. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo