Ecrire derniére cellule vide a droite
Bonjour,
Je me permets de vous sollicité pour un problème de code via un userform
Bien que j’ai essayé de faire de recherche je n’ai pas réussis a trouvé la solution
Dans l’userform avec 2 combobox, une qui sélectionne la feuil et la deuxième qui sélectionne un nom
Et j’ai des taches a effectuées pour cela j’ai un DTPicker puis une combobox qui sélectionne une tache et enfin un texbox
Et je voudrais si possible une aide surtout pour remplir ma ligne de la feuil sélectionner, ce qu’il me Faudrait cela serais d’avoir les taches (date, tache et prix) qui j’ajouterons à partir de la première cellule vide à droite des données
Je vous remercie et espère que j’ai réussis a donnée des explications assez claire
Je joins toute fois un extrait du fichier
Bonjour Marc02
Voici ton fichier modifié
Les codes modifié sont :
Private Sub CommandButton1_Click()
Dim NCol As Long, DerLig As Long, LigF As Long
Dim i As Integer
Dim Feuille As String
If ComboBox2 = "" Then Exit Sub
' Avec la feuille sélectionnée
With Worksheets(ComboBox1.Value)
' En cas d'erreur dans la recherche, on continue
On Error Resume Next
' trouver la ligne correspondant au client
LigF = 0: LigF = .Range("A:A").Find(What:=Me.ComboBox2.Text, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
' Remettre la gestion des erreurs à la normale
On Error GoTo 0
' Si nom existe déjà dans la liste ou si nouveau
If LigF > 0 Then
' Prochaine colonne vide à droite
NCol = .Cells(LigF, Columns.Count).End(xlToLeft).Offset(0, 1).Column
' Inscrire la tache
.Cells(LigF, NCol).Value = Format(Me.DTPicker1.Value, "mm/dd/yyyy")
.Cells(LigF, NCol + 1).Value = Me.ComboBox5
.Cells(LigF, NCol + 2).Value = Me.TextBox6.Value
MsgBox "La tache a été ajoutée en : " & Range(Cells(LigF, NCol), Cells(LigF, NCol + 2)).Address
Else
' Nouveau = ajouter toutes les données
DerLig = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & DerLig).Value = Ajout_Taches.ComboBox2
.Range("B" & DerLig).Value = TextBox1.Value
.Range("C" & DerLig).Value = TextBox2.Value
.Range("D" & DerLig).Value = TextBox3.Value
.Range("E" & DerLig).Value = TextBox4.Value
.Range("F" & DerLig).Value = TextBox5.Value
.Range("G" & DerLig).Value = Format(Me.DTPicker1.Value, "dd/mm/yyyy")
.Range("H" & DerLig).Value = Me.ComboBox5
.Range("I" & DerLig).Value = Me.TextBox6.Value
End If
End With
ComboBox2.SetFocus
ComboBox2.Value = "": ComboBox5.Value = ""
For i = 1 To 6: Me("TextBox" & i).Value = "": Next i
Sheets("Menu").Activate
End Sub
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Uniquement des chiffres ou la virgule
If InStr(1, "0123456789.,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
' Retourne une virgule lors de la saisie du point
If Chr(KeyAscii) = "." Then KeyAscii = Asc(",")
End Sub
A+
Bonjour, BrunoM45,
un tout grand merci surtout quand je voie le mal que vous vous êtes donnée, mais cela fonction a la perfection
Super, Super
Encore un grand Merci
marc