[VBA] fonction VBA find avec date et userform - RESOLU

babas

XLDnaute Junior
Bonjour à tous,

Je ne parvient pas à trouver la solution à mon problème malgré des recherches sur le forum pour des demandes similaires…

Voici le soucis, J'ai un userform avec à l'intérieur un textbox qui contient une date. Je voudrais retrouver cette date dans une feuille et insérer la valeur d'un autre textbox dans la dernière cellule vide de la colonne correspondant à cette date.
Voici le code que j'ai réalisé et qui ne fonctionne pas :(
VB:
e = CDate(newinter.TextBox2)
p = Sheets("cal").Range("A1:ND1").Find(e).Column
r = cells(p & Rows.Count).End(xlUp).Row + 1
Sheets("cal").Cells(r, p) = TextBox8

Si quelqu'un a une solution.

Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Test OK sur mon PC
VB:
Private Sub CommandButton1_Click()
Dim rng As Range, t
e = CSng(CDate(TextBox1))
Set rng = Sheets("cal").Range("$A$1:$ND$1")
p = Application.Match(e, rng, 0)
r = Cells(Rows.Count, p).End(xlUp).Row + 1
MsgBox Sheets("cal").Cells(r, p).Address
'////////////////////////////////////////////////
'plus court ;-)
MsgBox Cells(Rows.Count, p).End(3)(2).Address
End Sub
 

babas

XLDnaute Junior
Ayez, j'ai trouvé le problème
En fait mon textbox2 où se trouve la date n'est pas véritablement une date. Il est alimenté par trois autres textbox (un pour le jour, mois et année) qui eux sont modifié via le choix fait sur des optionbutton. Il doit y avoir un problème de traduction en date.
 

cp4

XLDnaute Barbatruc
Bonsoir le fil

Test OK sur mon PC
VB:
Private Sub CommandButton1_Click()
Dim rng As Range, t
e = CSng(CDate(TextBox1))
Set rng = Sheets("cal").Range("$A$1:$ND$1")
p = Application.Match(e, rng, 0)
r = Cells(Rows.Count, p).End(xlUp).Row + 1
MsgBox Sheets("cal").Cells(r, p).Address
'////////////////////////////////////////////////
'plus court ;-)
MsgBox Cells(Rows.Count, p).End(3)(2).Address
End Sub
Bonjour Staple1600 , babas

@Staple1600 : Stp que signifie le '(2)' de cette ligne de code ci-dessous:
VB:
MsgBox Cells(Rows.Count, p).End(3)(2).Address

Avec mes remerciements anticipés.

Bonne journée.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

=>cp4
Une petite macro en guise d'explication ;)
VB:
Sub Special_CP4()
Dim Zz As Range, p&
Randomize 1600
p = 19
With Application
    Set Zz = Cells(1, p).Offset(.RandBetween(1590, 1600))
    Zz.Value = "Staple"
    'écriture classique
    MsgBox Zz.End(xlUp).Offset(1).Address
    'écriture raccourcie
    MsgBox Zz.End(3)(2).Address
End With
Set Zz = Nothing
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T