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 Sub

D'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 Sub

Merci 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) + 1

Il 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...

Rechercher des sujets similaires à "userform qui fonctionne feuilles"