USERFORM
Bonjour tout le monde
Je suis débutant en VBA et après quelque recherche J'ai réussi a faire fonctionné un code qui me permets de créer une ligne automatiquement sur deux feuilles (Info et Summ) une fois le mois et le produit sélectionné...
Or, les choses se complique pour moi quand j essaie d'utiliser un userform pour saisir les données automatiquement dans la nouvelle ligne qui vient d'être crée
Vola le code qui marche pas pour moi (ci-joint mon fichier)
[code][/Dim lrCD As Long, lrPD As Long
lrCD = Sheets(“Info”).Range(“A” & Rows.Count).End(xlUp).Row
Sheets(“CustomerDetails”).Cells(lrCD + 1, “A”).Value = TextBox1.Text
Sheets(“CustomerDetails”).Cells(lrCD + 1, “B”).Value = TextBox2.Text
Sheets(“CustomerDetails”).Cells(lrCD + 1, “C”).Value = TextBox3.Text
Sheets(“CustomerDetails”).Cells(lrCD + 1, “D”).Value = TextBox4.Text
lrPD = Sheets(“Summ”).Range(“A” & Rows.Count).End(xlUp).Row
Sheets(“ProductDetails”).Cells(lrCD + 1, “A”).Value = TextBox1.Text
Sheets(“ProductDetails”).Cells(lrCD + 1, “B”).Value = TextBox2.Text
Sheets(“ProductDetails”).Cells(lrCD + 1, “C”).Value = TextBox5.Text
Sheets(“ProductDetails”).Cells(lrCD + 1, “D”).Value = TextBox6.Text
End Sub
code]
Merci pour l'aide
Merci beaucoup gmb pour la reponse
en faite, ton code ca marche a la perfection sauf que je l ai modifé un peu pour qu il réponds exactement a des nouvelles demandes
voila le nouveau code
Private Sub CommandButton1_Click()
Dim Info As Long, Summ As Long
With Sheets("Info")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
.Cells(Lgn, 5) = DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24
End With
With Sheets("Summ")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
End With
Unload Me
End Sub
Merci encore pour l'aide
Bonjour
vba1 a écrit :sauf que je l ai modifé un peu pour qu il réponds exactement a des nouvelles demandes
voila le nouveau code
Et...il marche ou tu as encore besoin de moi ?
Si tu as besoin, explique et joins ton fichier.
Bye !
Bonjour gmb
le code marche parfaitement merci
En revanche, j ai un autre petit probleme par rapport a la fonction "recherche" dans l'userform
en faite l'idée c est de faire apparaître tout ce qui a été rentré dans la base une fois le sous produit selectionné dans la case recherche ( dans le fichier ci-joint, J'ai utilisé le multipage vu le nombre d'information a traité)...avec la possibilité de modifier les informations déjà rentrer
puisque dans la ligne A il nya pas que le noms des sous produits(il ya aussi le mois et le nom du produits), je ne peux pas utiliser dans la case recherche un Combobox..enfin ce que je pense
ci-joint le fichier
merci encore pour l'aide
Suite a mon dernier message
voila le code que j essaie de faire fonctionné mais malheureusement j arrive pas...
Private Sub TextBox5_Change()
Dim lig As Integer
With Sheets("Info") ' feuille ou sont mes infos d'avance
lig = .Columns("A").Find(What:=TextBox5, after:=Range("A4"), Lookat:=xlWhole).Row ' chercher dans la colonne a , mon élément de référence
.Cells(lig, "B") = TextBox1_Change ' va porter les infos sur la bonne ligne
.Cells(lig, "C") = TextBox2_Change
.Cells(lig, "D") = TextBox3_Change
.Cells(lig, "E") = TextBox4_Change
End Sub
Ci-joint le fichier
Wow
Merci infiniment gmb pour ton aide...ta proposition réponds exactement a ce que je recherche
j aurai surement besoin de toi pour d'autres petites questions vu mes connaissances limitées en VBA
Je m'arrache les cheveux avec une base de données depuis le debut de mois....
Merci encore gmb
salut jmb c'est encore moi
Je viens d'ajouter une modification sur un code que j'ai déjà mis en place grâce a ton aide pour qu'il traite des nouvelles demandes ..mais ma modification ne réponds pas exactement a ce que je voulais
J ai ajouté une nouvelle feuille nommée Taxe. Sur cette feuille, il ya le mois et le produits. L'idée c est qu'une fois appuyer sur le bouton "transférer"de l'Userform, le nom de sous produit (ex: Produit A) doit apparaître DEUX FOIS consécutifs dans la feuille Taxe sous le mois et le produit qui lui corresponds(Cellule D5 et H5 de la feuille Formulaire de saisie)..la selection d un nouveau sous produits vient s'ajouter au dessous des deux lignes du sous produit selectionné avant ex:
Produit A
Produit A
Produit B
Produit B
Voila le code
Private Sub CommandButton1_Click()
Dim Info As Long, Summ As Long, Taxe As String
With Sheets("Info")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
.Cells(Lgn, 5) = Round(DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24, 4)
End With
With Sheets("Summ")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
End With ' la partie qui marche pas
With Sheets("Taxe")
Lgn = .Range("A7").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 1) = Controls("Textbox1")
End With
Unload Me
End Sub
Ci-joint le fichier
Vraiment merci
Message suite
le fichier Joint
Bonjour
vba1 a écrit :la partie qui marche pas
Essaie cette modification :
With Sheets("Taxe")
Lgn = .Range("A7").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn+1, 1) = Controls("Textbox1")Bye !
Bonjour
Malheureusement marche toujours pas...j'ai définis des variables pour qu'il cherche le mois d'abord puis le produit dans la feuille Taxe et metre les deux lignes de meme sous-produit au dessous du produit trouvé..mais ca blogue sur la ligne ( Lgn = .Range(SecondAdress).End(xlDown).Row + 1)
voila le code
Private Sub CommandButton1_Click()
Dim x, m as long Info As Long, Summ As Long, Taxe As String
With Sheets("Info")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
.Cells(Lgn, 5) = Round(DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24, 4)
End With
With Sheets("Summ")
Lgn = .Range("A4").End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn, 2) = Controls("Textbox2")
.Cells(Lgn, 3) = Controls("Textbox3")
.Cells(Lgn, 4) = Controls("Textbox4")
End With
With Taxe = Worksheets("Taxe").Select
x = Range("C1")
m = Range("B1")
With Worksheets("Taxe").Range("A:A")
Set c = .Find(m, LookIn:=xlValues, Lookat:=xlWhole)
If Not c Is Nothing Then
firstaddress = c.Address
End If
Set c = .Find(x, after:=Range(firstaddress), LookIn:=xlValues, Lookat _
:=xlPart)
SecondAddress = c.Address
End With
With Sheets("Taxe")
Lgn = .Range(SecondAdress).End(xlDown).Row + 1
.Cells(Lgn, 1) = Controls("Textbox1")
.Cells(Lgn + 1, 1) = Controls("Textbox1")
End With
le fichier ci joint
Merci beaucoup