Un Userform qui fonctionne avec plusieurs feuilles
Bonjour,
Je débute en VBA. Je suis occupé de réaliser un formulaire pour ajouter des clients dans une feuille Excel et ainsi éviter les fausses manipulations du personnel à qui ce formulaire est dédié.
Le formulaire fonctionne parfaitement quand je suis sur la feuille "Client" mais si je change de feuille, il place les données clients sur la page "Active".
Je souhaiterais que peut importe la feuille où l'on se trouve, l'ajout d'un client par l'Userform, l'ajoute dans la feuille "client".
J'ai fais quelques recherches mais je ne parviens pas à exprimer mon besoin dans Google :/
'Effacer les champs d'un nouveau client
Private Sub CommandButton14_Click()
TextBox36.Value = "Belgique"
TextBox37.Value = ""
TextBox38.Value = ""
TextBox39.Value = ""
TextBox41.Value = ""
TextBox42.Value = ""
TextBox43.Value = ""
TextBox44.Value = ""
TextBox45.Value = ""
checkbox2.Value = "False"
End Sub
'Valide les champs d'un nouveau client et donne le numéro de clients
Private Sub CommandButton13_Click()
'Si champs nom et prénom vide alors message
If TextBox41.Value = "" Then
MsgBox "Le nom n'est pas rempli !", vbExclamation + vbOKOnly
Else
'Sinon j'intègre le client avec un message de validation
Dim derligne As Integer
If MsgBox("Confirmez-vous l'ajout des données ?", vbYesNo, "confirmation") = vbYes Then derligne = Sheets("Clients").Range("B1000").End(xlUp).Row + 1
Cells(derligne, 7) = TextBox36.Value
Cells(derligne, 6) = TextBox37.Value
Cells(derligne, 4) = TextBox38.Value
Cells(derligne, 3) = TextBox39.Value
Cells(derligne, 2) = TextBox41.Value
Cells(derligne, 5) = TextBox42.Value
Cells(derligne, 8) = TextBox43.Value
Cells(derligne, 11) = TextBox44.Value
Cells(derligne, 9) = TextBox45.Value
'Si la case RC est coché, alors mettre oui sinon mettre non
If checkbox2.Value = True Then
Cells(derligne, 10) = "True"
Else
Cells(derligne, 10) = "False"
End If
'J'incrémente le numéro de client et je l'ajoute dans le CTO
TextBox119.Value = Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
'Je donne le nom et prénom ainsi que le numéro de client
MsgBox ("Le numéro de client de " & TextBox41 & " " & TextBox40 & " est le " & TextBox119 & " ")
Cells(derligne, 1) = TextBox119.Value
End If
End SubD'avance, merci
Bonjour Jeason, bonjour le forum,
Essaie comme ça :
'Valide les champs d'un nouveau client et donne le numéro de clients
Private Sub CommandButton13_Click()
Dim O As Worksheet
Dim derligne As Integer
Set O = Worksheets("Client")
'Si champs nom et prénom vide alors message
If TextBox41.Value = "" Then
MsgBox "Le nom n'est pas rempli !", vbExclamation + vbOKOnly
Else
'Sinon j'intègre le client avec un message de validation
If MsgBox("Confirmez-vous l'ajout des données ?", vbYesNo, "confirmation") = vbYes Then derligne = O.Range("B1000").End(xlUp).Row + 1
O.Cells(derligne, 7) = TextBox36.Value
O.Cells(derligne, 6) = TextBox37.Value
O.Cells(derligne, 4) = TextBox38.Value
O.Cells(derligne, 3) = TextBox39.Value
O.Cells(derligne, 2) = TextBox41.Value
O.Cells(derligne, 5) = TextBox42.Value
O.Cells(derligne, 8) = TextBox43.Value
O.Cells(derligne, 11) = TextBox44.Value
O.Cells(derligne, 9) = TextBox45.Value
'Si la case RC est coché, alors mettre oui sinon mettre non
If checkbox2.Value = True Then
O.Cells(derligne, 10) = "True"
Else
O.Cells(derligne, 10) = "False"
End If
'J'incrémente le numéro de client et je l'ajoute dans le CTO
TextBox119.Value = O.Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
'Je donne le nom et prénom ainsi que le numéro de client
MsgBox ("Le numéro de client de " & TextBox41 & " " & TextBox40 & " est le " & TextBox119 & " ")
O.Cells(derligne, 1) = TextBox119.Value
End If
End SubMerci pour votre réponse.
Ce semble fonctionner ! J'ai ajouté un S à Client étant donné que ma feuille se nomme "Clients"
l'Useform fonctionne maintenant quand je suis sur une autre feuille. Reste que j'ai une erreur "13 Incompatibilité de type" à cause de cette ligne :
'J'incrémente le numéro de client et je l'ajoute dans le CTO
TextBox119.Value = O.Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
Je n'ai donc pas l’incrémentation du numeros clients, mais les données clients sont correctement rentrés.
Pourriez vous également m'argumenter vos modifications, cela me permettra de mieux comprendre pour la suite.
Encore merci
Résolu
'J'incrémente le numéro de client
TextBox119.Value = O.Range("A" & O.Cells(Rows.Count, 1).End(xlUp).Row) + 1Il manquait un O.
Le "O." est une synthaxe obligatoire ou on peut le nommer comme on veux ?
Re,
Bien vu ! Sinon, tu nommes comme tu veux, moi je met O pour Onglet...