Dim derlig As Long, trouv As Range, vu As Long, ecart As Long, i As Long derlig = Range("A" & Rows.Count).End(xlUp).Row ecart = 24# * 3600# 'un écart de une journée, en secondes (laisser les #) For i = 1 To derlig vu = Abs(DateDiff("s", Range("A" & i).Value, CDate(TextBox1.Value))) Select Case vu Case 0 Set trouv = Range("A" & i): Exit For Case Else If vu < ecart Then ecart vu: Set trouv Range("A" & i) End Select Next MsgBox trouv.Address
Forum > VB.NET et VB 2005qui n'a absolument rien à voir avec VBA/Excel !
Je voudrait donc que si l'heure inscrite dans TextBox2 n'est pas trouver, qu'il me sélectionne l'heure la plus proche.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionIf TextBox2.Text <> "" Then 'Si TextBox2 est différent de "Rien" alors 'Set Lacase = Worksheets(2).Range("B:B").Find(TextBox2.Text, LookIn:=xlValues) 'Chercher le texte qu'il y a d'écrit dans le TextBox2 et l'ajouter a la variable detecte ValRet = Cells(2, 2).Value For i = 2 To 4000 If Cells(i, 2).Value = TextBox2.Value Then ValRet = Cells(i, 2) Exit For Else If (Cells(i, 2).Value > ValRet) And (Cells(i, 2).Value < TextBox2.Value) Then ValRet = Cells(i, 2).Value End If End If Next i 'Prend la valeur de la température dans la colonne C et la mets dans le TextBox 3 If Not Lacase Is Nothing Then TextBox7.Text = Worksheets(2).Range("C" & (Lacase.Row + 0)) 'Si au moins un résultat est trouver alors écrire dans la TextBox3 la cellule de la colonne C qui a les mêmes coordonnées que "detecte". If Not Lacase Is Nothing Then TextBox8.Text = Worksheets(2).Range("D" & (Lacase.Row + 0)) If Not Lacase Is Nothing Then 'Si au moins un résultat est trouver alors ligne = Lacase.Row 'La variable ligne prend les coordonnées de la ligne de "detecte" col = Lacase.Column 'La variable col prend les coordonnées de la colonne de "detecte" Lacase.Select 'on selectionne la cellule "detecte" End If End If
Private Sub ComboBox2_Change() Dim NbrCases Dim lig_fin If ComboBox2.Text "3sec> 10min" Then 'Si la selection de la ComboBox est égale à "3sec => 10min" alors NbrCases 200 'NbrCases200 End If 'Fin si If ComboBox2.Text "3sec> 30min" Then NbrCases = 600 End If If ComboBox2.Text "10sec> 10min" Then NbrCases = 60 End If If ComboBox2.Text "10sec> 30min" Then NbrCases = 180 End If Sheets(1).Select Dim t As Range Dim ligne As Long Dim col As Integer Dim shtoto As Worksheet Dim Lacase Dim ValRet Dim ValeurApproch Sheets(2).Select If TextBox2.Text <> "" Then 'Si TextBox2 est différent de "Rien" alors Set Lacase = Worksheets(2).Range("B:B").Find(TextBox2.Text, LookIn:=xlValues) 'Chercher le texte qu'il y a d'écrit dans le TextBox2 et l'ajouter a la variable detecte 'Prend la valeur de la température dans la colonne C et la mets dans le TextBox 3 If Not Lacase Is Nothing Then TextBox7.Text = Worksheets(2).Range("C" & (Lacase.Row + 0)) 'Si au moins un résultat est trouver alors écrire dans la TextBox3 la cellule de la colonne C qui a les mêmes coordonnées que "detecte". If Not Lacase Is Nothing Then TextBox8.Text = Worksheets(2).Range("D" & (Lacase.Row + 0)) If Not Lacase Is Nothing Then 'Si au moins un résultat est trouver alors ligne = Lacase.Row 'La variable ligne prend les coordonnées de la ligne de "detecte" col = Lacase.Column 'La variable col prend les coordonnées de la colonne de "detecte" Lacase.Select 'on selectionne la cellule "detecte" End If End If Range(ActiveCell, ActiveCell(NbrCases, 3)).Copy 'copie des NbrCases (= valeur de 60 à 600 ) lignes en dessous de la cellule "detecte" (qui est active) Sheets(5).Select 'Selection de la feuille 5 Range("D4").Select 'selection de "A4" ActiveSheet.Paste '"Coller" la selection Application.CutCopyMode = False 'Enlever la surbrillance de la selection Sheets(2).Select Range("H3").FormulaR1C1 = TextBox2.Text Range("H13").FormulaR1C1 = _ "=INDEX('Capteur à étalonner'!C[-6],MATCH('Capteur Temp Ref'!R[-10]C,'Capteur à étalonner'!C[-6],1))" '=INDEX('Capteur à étalonner'!B:B,EQUIV('Capteur Temp Ref'!H3,'Capteur à étalonner'!B:B,1)) Range("H13").Select Selection.NumberFormat = "h:mm:ss" ValeurApproch = Range("H13").Value Sheets(1).Select Range("H8").Value = ValeurApproch Range("H8").Select Selection.NumberFormat = "h:mm:ss" If TextBox2.Text <> "" Then 'Si TextBox2 est différent de "Rien" alors Set t = Worksheets(1).Range("B:B").Find(Range("H8").Text, LookAt:=xlWhole) 'Chercher le texte qu'il y a d'écrit dans le TextBox2 et l'ajouter a la variable t 'Prend la valeur de la température dans la colonne C et la mets dans le TextBox 3 If Not t Is Nothing Then TextBox3.Text = Worksheets(1).Range("C" & (t.Row + 0)) 'Si au moins un résultat est trouver alors écrire dans la TextBox3 la cellule de la colonne C qui a les mêmes coordonnées que "t". If Not t Is Nothing Then TextBox4.Text = Worksheets(1).Range("D" & (t.Row + 0)) If Not t Is Nothing Then 'Si au moins un résultat est trouver alors ligne = t.Row 'La variable ligne prend les coordonnées de la ligne de "t" col = t.Column 'La variable col prend les coordonnées de la colonne de "t" t.Select 'on selectionne la cellule "t" End If End If Range(ActiveCell, ActiveCell(NbrCases, 3)).Copy 'copie des NbrCases (= valeur de 60 à 600 ) lignes en dessous de la cellule "detecte" (qui est active) Sheets(5).Select 'Selection de la feuille 5 Range("A4").Select 'selection de "A4" ActiveSheet.Paste '"Coller" la selection Application.CutCopyMode = False 'Enlever la surbrillance de la selection End Sub