Formulaire et alimentation multi feuilles

Bonjour

Une petite question j'ai créée un formulaire USERFORM avec différentes TEXTBOX qui me renvoie les valeurs sur une feuille base de donnée, ma question est :

Est il possible que je puisse affecter également les données des TEXTBOX à une autre feuille nomée DDE DEVIS dans le même classeur, dans des cellules bien définies (voir exemple plus bas), attention les valeurs les TEXTBOX dans qui se retrouveront dans la feuille DDE DEVIS n'ont pas vocation à rester puisqu'elle doivent changer a chaque fois que les valeurs de mes TEXTBOX changeront. En quelque sorte sa pourrait donner cela exemple : txtNom est égal à la ligne correspondante dans ma feuille BASE DE DONNEE (jusqu'a que jele décide), mais correspond également à la cellule C23 de la feuille DDE DEVIS (mais uniquement de manière temporaire, si une nouvelle valeur est entrée dans txtNom alors cela, devra correspondre à la valeur que je devrais retrouver dans la feuille DDE DEVIS :

Private Sub cmdAjouter_Click()

Dim numLigneVide As Integer

Worksheets("BASE DE DONNEE").Activate

numLigneVide = ActiveSheet.Columns(1).Find("").Row

If txtNom.Text = "" Then

MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"

txtNom.SetFocus

ElseIf txtPrenom.Text = "" Then

MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"

txtPrenom.SetFocus

Else

ActiveSheet.Cells(numLigneVide, 1) = UCase(txtNom.Text)

ActiveSheet.Cells(numLigneVide, 2) = txtPrenom.Text

ActiveSheet.Cells(numLigneVide, 3) = txtEntreprise.Text

ActiveSheet.Cells(numLigneVide, 4) = txtAdresse.Text

ActiveSheet.Cells(numLigneVide, 5) = txtCP.Text

ActiveSheet.Cells(numLigneVide, 6) = txtVille.Text

ActiveSheet.Cells(numLigneVide, 7) = txtEmail.Text

ActiveSheet.Cells(numLigneVide, 8) = txtTelFixe.Text

ActiveSheet.Cells(numLigneVide, 9) = txtTelPortable.Text

ActiveSheet.Cells(numLigneVide, 10) = txtFax.Text

ActiveSheet.Cells(numLigneVide, 11) = txtObservations.Text

txtNom.Text = ""

txtPrenom.Text = ""

txtEntreprise = ""

txtAdresse.Text = ""

txtCP.Text = ""

txtVille.Text = ""

txtEmail.Text = ""

txtTelFixe.Text = ""

txtTelPortable.Text = ""

txtFax.Text = ""

txtObservations.Text = ""

txtNom.SetFocus

End If

End Sub

Private Sub CommandButton1_Click()

Dim no_ligne As Integer

no_ligne = ComboBox1.ListIndex + 7

txtNom.Value = Cells(no_ligne, 1).Value + sheets "DDE DEVIS"! cells(no_ligne,24);columns(C) bref la cellule C24

txtPrenom.Value = Cells(no_ligne, 2).Value idem en C25

txtEntreprise.Value = Cells(no_ligne, 3).Value '' '' C23

txtAdresse.Value = Cells(no_ligne, 4).Value " " C26

txtCP.Value = Cells(no_ligne, 5).Value C27 " "

txtVille.Value = Cells(no_ligne, 6).ValueC28

txtEmail.Value = Cells(no_ligne, 7).ValueC32

txtTelFixe.Value = Cells(no_ligne, 8).Value C29

txtTelPortable.Value = Cells(no_ligne, 9).Value C30

txtFax.Value = Cells(no_ligne, 10).Value C31

txtObservations.Value = Cells(no_ligne, 11).Value

End Sub

Bonjour Jno, bonjour le forum,

C'est pas très clair !... Le code du premier bouton cmdAjouter renvoie les valeur de l'UserForm dans l'onglet tandis que le code du second bouton récupère les valeurs de l'onglet dans l'UseForm...

Ayant compris que tu voulais renvoyer les données de l'userForm vers deux onglets différents je ne vois pas ce que viens faire le code du second bouton...

Voilà comment de procèderais :

Private Sub cmdAjouter_Click()
Dim B As Worksheet
Dim D As Worksheet
Dim DL As Integer

Set B = Sheets("BASE DE DONNEE")
Set D = Sheets("DDE DEVIS")
DL = B.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1

If txtNom.Text = "" Then
    MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"
    txtNom.SetFocus
ElseIf txtPrenom.Text = "" Then
        MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"
    txtPrenom.SetFocus
Else
    B.Cells(LI, 1) = UCase(txtNom.Text)
    D.Range("C24").Value = UCase(txtNom.Text)

    'idem pour les autres textboxes
End If
Unload Me
UserForm1.Show
End Sub

Bonjour thau theme

Merci pour ta réponse, mais sa ne fonctionne pas, les données entrées dans le formulaire doivent être visible à partir de la ligne 7 colone A pour ma feuille base de donnée, si sa peut aider a y voir plus clair !

En tout cas merci.

Private Sub cmdAjouter_Click()

Dim B As Worksheet

Dim D As Worksheet

Dim DL As Integer

Set B = Sheets("BASE DE DONNEE")

Set D = Sheets("DDE DEVIS")

DL = B.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1

If txtNom.Text = "" Then

MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"

txtNom.SetFocus

ElseIf txtPrenom.Text = "" Then

MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"

txtPrenom.SetFocus

Else

B.Cells(LI, 1) = UCase(txtNom.Text)

D.Range("C24").Value = UCase(txtNom.Text)

B.Cells(LI, 2) = (txtPrenom.Text)

D.Range("C25").Value = (txtPrenom.Text)

B.Cells(LI, 3) = (txtEntreprise.Text)

D.Range("C23").Value = (txtEntreprise.Text)

B.Cells(LI, 4) = (txtAdresse.Text)

D.Range("C26").Value = (txtAdresse.Text)

B.Cells(LI, 5) = (txtCP.Text)

D.Range("C27").Value = (txtCP.Text)

B.Cells(LI, 6) = (txtVille.Text)

D.Range("C28").Value = (txtVille.Text)

B.Cells(LI, 7) = (txtEmail.Text)

D.Range("C32").Value = (txtEmail.Text)

B.Cells(LI, 8) = (txtTelFixe.Text)

D.Range("C29").Value = (txtTelFixe.Text)

B.Cells(LI, 9) = (txtTelPortable.Text)

D.Range("C30").Value = (txtTelPortable.Text)

B.Cells(LI, 10) = (txtFax.Text)

D.Range("C31").Value = (txtFax.Text)

B.Cells(LI, 11) = (txtObservations.Text)

End If

Unload Me

UserForm1.Show

End Sub

Re

En faite ton code m'as fait réfléchir à une nouvelle piste, j'ai crééé un nouveau bouton de commande que j'ai ajouté à mon userform, et j'ai rentré uniquement une partie de ton code et sa fonctionne impecc !

Private Sub CommandButton4_Click()

Dim B As Worksheet

Dim D As Worksheet

Dim DL As Integer

Set B = Sheets("BASE DE DONNEE")

Set D = Sheets("DDE DEVIS")

DL = B.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1

If txtNom.Text = "" Then

MsgBox "Veuillez remplir le nom de votre contact", vbCritical, "Champs manquant"

txtNom.SetFocus

ElseIf txtPrenom.Text = "" Then

MsgBox "Veuillez remplir le prénom de votre contact", vbCritical, "Champs manquant"

txtPrenom.SetFocus

Else

D.Range("C24").Value = UCase(txtNom.Text)

D.Range("C25").Value = (txtPrenom.Text)

D.Range("C23").Value = (txtEntreprise.Text)

D.Range("C26").Value = (txtAdresse.Text)

D.Range("C27").Value = (txtCP.Text)

D.Range("C28").Value = (txtVille.Text)

D.Range("C32").Value = (txtEmail.Text)

D.Range("C29").Value = (txtTelFixe.Text)

D.Range("C30").Value = (txtTelPortable.Text)

D.Range("C31").Value = (txtFax.Text)

Maintenant j'ai encore plein d'autres soucis mais grace à toi sa en fait 1 en moins, on se retrouve sur le forum !

Rechercher des sujets similaires à "formulaire alimentation multi feuilles"