Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2012, 11h43   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2008
Messages : 48
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 48
Points : 11
Points : 11
Par défaut Rechercher une date.

Bonjour le forum,

A partir d'un textbox1 qui est placé sur un userform.
Avec ce code, dans la colonne "A" d'une feuille excel, je retrouve et selectionne bien la date saisie dans le textbox1.

Mais comment faire si la date n'existe pas ???

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  Dim MaDate As Variant
  Dim Date_a_Trouver As Range

  MaDate = Me.TextBox1.Value

  If MaDate = "" Then Exit Sub
On Error GoTo Fin

  For Each Date_a_Trouver In Range("A2", [A65536].End(xlUp))
  
    If Date_a_Trouver = CDate(MaDate) Then
    Date_a_Trouver.Select
    
    MsgBox " cette date existe : " & ActiveCell.Value & "   Adresse = : " & ActiveCell.Address
    ' Ici le noeud du problème.
    'Else
    'If Date_a_Trouver <> CDate(MaDate) Then
    'MsgBox " cette date n'existe pas."
    'Exit Sub

    End If
  Next
Fin:
Merci à vous de m'avoir lu.
Fasedan
fasedan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 12h37   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 035
Points : 4 035
Bonjour,

Tu peux faire comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  Dim MaDate As Variant
  Dim Date_a_Trouver As Range
  Dim Teste As Boolean
 
  MaDate = Me.TextBox1.Value
 
  If MaDate = "" Then Exit Sub
On Error GoTo Fin
 
  For Each Date_a_Trouver In Range("A2", [A65536].End(xlUp))
 
    If Date_a_Trouver = CDate(MaDate) Then
    Date_a_Trouver.Select
 
    MsgBox " cette date existe : " & ActiveCell.Value & "   Adresse = : " & ActiveCell.Address
    Teste = True
    Exit For
 
    End If
  Next
  If Teste = False Then MsgBox "cette date n'existe pas"
Fin:
J'ai ajouté une ligne pour sortir de la boucle lorsqu'on a trouvé la correspondance et un test que je positionne à vrai si l'égalité est trouvée. Pour éviter la boucle :

Code :
1
2
3
4
5
6
    If IsNumeric(Application.Match(Date_a_Trouver * 1, Range("A2", [A65536].End(xlUp)), 0)) Then
        [A1].Offset(Application.Match(Date_a_Trouver * 1, Range("A2", [A65536].End(xlUp)), 0)).Select
        MsgBox "cette cellule existe"
    Else
        MsgBox "cette cellule n'existe pas"
    End If
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2012, 13h08   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2008
Messages : 48
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 48
Points : 11
Points : 11
Merci daniel.C pour la réponse.

Je viens de tester le premier code et cela fonctionne à merveille.

Je n'ai plus le temps maintenant, mais dès que possible, je teste le supplément de la deuxième partie du code et je reviens à vous.

Un grand merci à vous et developpez.com

Fasedan
fasedan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web