Ecrire dans une feuille à partir d'un UserForm

Bonjour !

Alors mon problème est le suivant.

Je rempli en partie le Userform suivant grâce à la feuille "StagesTRN" et en partie à la main.

Je souhaiterais que l'ensemble des données insérées dans le UserForm (automatiques et manuelles) viennent grossir une base de données dans la feuille "BaseDeDonnees".

Vous trouverez dans la suite le code que j'ai écrit.

Malheureusement cela ne fonctionne pas. Au niveau de la Sub "insererStageBdd", j'obtiens une "Erreur définie par l'application ou par l'objet".

Pourriez vous m'aidez à rectifier le tir ?

Vrancky

NB: j'utilise Excel 2003

Private Sub ComboBox1_Change() 'va chercher dans les cases avions et hdv de la feuille StagesTRN les valeurs

With Sheets("StagesTRN")
        TextBox5 = .Cells(ComboBox1.ListIndex + 2, 2)
        TextBox6 = .Cells(ComboBox1.ListIndex + 2, 3)
        TextBox7 = .Cells(ComboBox1.ListIndex + 2, 4)
End With

End Sub

Private Sub UserForm_Initialize() 'Permet d'initialiser les valeurs dans les zones souhaitees

    Me.Caption = "Ajouter un stage"

    Dim H As Integer
    With Sheets("StagesTRN")
    For H = 2 To .Range("a65536").End(xlUp).Row
    ComboBox1.AddItem .Range("a" & H).Value
    Next H
    End With

End Sub
Private Sub CommandButton2_Click()
    'Bouton Annuler
    Unload Me
End Sub
Private Sub CommandButton1_Click() ' declaration des variables utilisées plus tard pour les calculs et des chaines de renseignements

' Gestion Base de données

' Application PDC

    Dim nomstage, remarque, avion, promotion As String
    Dim nbSemaines, nbStagiaires, hdvd, hdvs As Integer

    nomstage = ComboBox1.Value
    nbSemaines = CLng(TextBox1.Value)
    nbStagiaires = CLng(TextBox2.Value)
    promotion = TextBox3.Value
    remarque = TextBox4.Value
    avion = TextBox5.Value
    hdvd = TextBox6.Value
    hdvs = TextBox7.Value

    Unload Me

    Dim ligne As Integer
    ligne = Selection.Cells(1).Row

    'chercher la colonne a laquelle le stage doit etre inserer
    Dim colonne As Integer
    colonne = Selection.Cells(1).Column

    Call insererStage(ligne, colonne, nomstage, nbSemaines, nbStagiaires, promotion, remarque, avion, hdvs, hdvd)
    Call insererStageBdd(ligne, colonne, nomstage, nbSemaines, nbStagiaires, promotion, remarque, avion, hdvs, hdvd)

End Sub
Sub insererStageBdd(ByVal ligne, ByVal colonne, ByVal nomstage, ByVal nbSemaines, ByVal nbStagiaires, ByVal promotion, ByVal remarque, ByVal avion, ByVal hdvs, ByVal hdvd)

Dim lignebdd As Variant

    With Sheets("BaseDeDonnees")
    lignebdd = Range("A65536").End(xlUp).Offset(1, 0).Select

        .Cells(lignebdd, 2) = nomstage
        .Cells(lignebdd, 3) = nbSemaines
        .Cells(lignebdd, 4) = promotion
        .Cells(lignebdd, 5) = remarque
        .Cells(lignebdd, 6) = avion
        .Cells(lignebdd, 7) = hdvd
        .Cells(lignebdd, 8) = hdvs

    End With

End Sub

Bonjour,

Tu peux commencer par tenter

lignebdd = .Range("A65536").End(xlUp).Offset(1, 0).Row

A+

Excellent, merci !

Lors de la première utilisation du UserForm, la ligne est bien créé. En revanche à la seconde utilisation, la première ligne "écrite" est remplacée par la seconde.

Vois tu une solution ?

Auto correction réussie

Rechercher des sujets similaires à "ecrire feuille partir userform"