récupérer coordonnées cellule à partir de son contenu

  • Initiateur de la discussion Initiateur de la discussion jean-ed
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jean-ed

XLDnaute Nouveau
Bonjour à tous!
J'ai crée un userform contenant 6 tetxbox. Je peux ainsi rentrer le jour, le mois, l'année puis l'heure, la minute et la seconde. Après clic sur un bouton de validation, j'obtiens une date précise à la seconde près selon ce format : jj/mm/aa - hh:mm:ss. J'ai sur le même fichier excel un classeur avec toutes les dates répertoriées. J'aimerais, en tapant 24 12 08 00 00 03 récupérer les coordonnées de la cellule contenant la date 24/12/08 - 00:00:03, par exemple D3502 en supposant qu'elle se situe à la 3502è ligne de la colonne D. Y'a-t-il une fonction qui permette ceci sous vba?
Merci
 
Re : récupérer coordonnées cellule à partir de son contenu

bonjour jean-ed,

voici un code qui a l'air de fonctionner :

Code:
Sub test()

Dim laCell As Range
Dim laDate As Date
laDate = Format("12/12/1945  12:12:00", "dd/mm/yyyy hh:mm:ss")

Set laCell = ThisWorkbook.Sheets("Feuil1").Cells.Find(what:=laDate, Lookat:=xlWhole)

MsgBox laCell.Address
End Sub

à adapter

a+
 
Re : récupérer coordonnées cellule à partir de son contenu

Bonjour mromain
J'ai adapté ton bout de code comme ceci:

Private Sub CommandButton1_Click()
Dim chaine1 As String


chaine1 = TextBox1.Value + "/" + TextBox2.Value + "/" + TextBox3.Value + " - " + TextBox4.Value + ":" + TextBox5.Value + ":" + TextBox6.Value


Dim laCell As Range


Set laCell = Feuil2.Cells.Find(what:=chaine1, Lookat:=xlWhole)

MsgBox laCell.Address

Mais il me dit "variable objet ou variable de bloc with non définie"
Saurais-tu d'où viens le problème?
Merci
 
Re : récupérer coordonnées cellule à partir de son contenu

re,

à tester (le mieux aurait été que tu envoies un bout de fichier) :

Code:
Private Sub CommandButton1_Click()
Dim chaine1 As String
Dim laCell As Range
Dim laDate As Date

chaine1 = TextBox1.Value + "/" + TextBox2.Value + "/" + TextBox3.Value + " - " + TextBox4.Value + ":" + TextBox5.Value + ":" + TextBox6.Value

laDate = Format(chaine1 , "dd/mm/yyyy - hh:mm:ss")

Set laCell = Feuil2.Cells.Find(what:=laDate, Lookat:=xlWhole)

If Not laCell Is Nothing Then MsgBox laCell.Address
End Sub

a+
 
Re : récupérer coordonnées cellule à partir de son contenu

Voilà exactement le code que j'ai mis mais la msgbox n'apparaît pas :

Private Sub CommandButton1_Click()
Dim chaine1 As String
chaine1 = TextBox1.Value + "/" + TextBox2.Value + "/" + TextBox3.Value + " - " + TextBox4.Value + ":" + TextBox5.Value + ":" + TextBox6.Value
laDate = Format(chaine1, "dd/mm/yyyy - hh:mm:ss")

Set laCell = Feuil2.Cells.Find(what:=laDate, Lookat:=xlWhole)


If Not laCell Is Nothing Then
MsgBox laCell.Adress
End If

End Sub
 
Re : récupérer coordonnées cellule à partir de son contenu

re,

on dirait qu'il y a un PB avec ton format de date :
avec le format "dd/mm/yyyy - hh:mm:ss", il y a un PB
avec le format "dd/mm/yyyy hh:mm:ss", ça passe.

je te met le fichier joint.

a+
 

Pièces jointes

Re : récupérer coordonnées cellule à partir de son contenu

J'ai fais un test. Ce code marche parfaitement si je lui demande de trouver un nombre. Le problème vient donc du format date. J'ai rajouté une condition :

If Not laCell Is Nothing Then
MsgBox laCell.Address
Else
MsgBox "La valeur rentrée n'existe pas"
End If

Il em renvoie à tous les coups "la valeur rentrée n'existe pas" alors qu'elle est strictement identique à celle du classeur...
 
Re : récupérer coordonnées cellule à partir de son contenu

Bonjour,

essaye peut être en utilisant l'argument "lookin" de la méthode "find":

Code:
Dim laCell As Range
Set laCell = Feuil2.Cells.Find(what:=laDate, [B][COLOR="Red"]LookIn:=xlValues[/COLOR][/B], Lookat:=xlWhole)

si cela n'est pas suffisant, il y aura peut être lieu d'utiliser la fonction "CDate", comme dans l'exemple ci-dessous :

Code:
Dim madate As Date, mavariable As String
mavariable = "02/04/2009 13:00:00"
madate = Format(CDate(mavariable), "dd/mm/yyyy hh:mm:ss")

bon après midi
@+
 
Re : récupérer coordonnées cellule à partir de son contenu

re bonjour jean-ed, Pierrot93

peux-tu mettre un fichier en exemple qu'on puisse travailler directement dessus.
un exemple simple (comme le fichier que je t'ai envoyé dans le précédent post).

a+
 
Re : récupérer coordonnées cellule à partir de son contenu

Bonjour jean-ed, mromain, Pierrot,

Dans la recherche d'une date, il faut rechercher le nombre qui la représente, sans s'occuper du format de la cellule qui la contient :

- CDate pour transformer en nombre le texte de la date recherchée (texte dans un format reconnaissable par VBA)

- XlFormulas, qui recherche ce nombre.

Donc essayer :

Code:
Sub test()

Dim laCell As Range
Dim laDate As Date
laDate = [COLOR="Red"]Cdate[/COLOR]("12/12/1945 12:12:00")

Set laCell = ThisWorkbook.Sheets("Feuil1").Cells.Find(what:=laDate, [COLOR="Red"]LookIn:=xlFormulas[/COLOR], Lookat:=xlWhole)

MsgBox laCell.Address
End Sub

et avec les TextBox, calculer laDate par :

Code:
laDate = CDate(TextBox1 & "/" & TextBox2 & "/" & TextBox3 & " " & TextBox4 & ":" & TextBox5 & ":" & TextBox6)

Un espace, et pas un tiret, pour séparer date et heure.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
3 K
J
Réponses
1
Affichages
900
B
Retour