[Excel 2003] Problème d'insertion dans une feuille via un formulaire

Taddy

XLDnaute Nouveau

Bonjour à tout le monde,

J'ai débuté récemment en VBA Excel et je rencontre le problème suivant.
Je veux via un formulaire insérer des informations sur une personne. Pour cela je clique sur un bouton insérer dans la feuille qui affiche le formulaire mais qui m'ajoute deux lignes une en-dessous du header et l'autre en-dessous de la dernière ligne remplie.
Ce que je souhaite faire est d'insérer mes données après la dernière ligne et je n'y arrive pas.

Quelqu'un pourrait me donner une piste pour continuer, svp??
Merci d'avance.

 

Pièces jointes

  • Test_Formulaire_Insert.xls
    47 KB · Affichages: 129
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : [Excel 2003] Problème d'insertion dans une feuille via un formulaire

Bonjour Taddy,
Tout d'abord bienvenu sur le forum ! Est-ce que vous pourriez déposer un exemple anonyme de votre fichier en pièce jointe pour que l'on puisse vous proposer des solutions concrètes ?

À vous lire pour plus,

Cordialement,
Étienne
 

Taddy

XLDnaute Nouveau
Re : [Excel 2003] Problème d'insertion dans une feuille via un formulaire


Bonjour Etienne,

Mon fichier étant trop gros, j'ai dû l'épurer. Je l'ai donc joint à mon précédent message.
Merci pour votre réactivité.

--
Taddy
 
G

Guest

Guest
Re : [Excel 2003] Problème d'insertion dans une feuille via un formulaire

Bonjour Taddy,

Voici le code de ton userForm modifié.
Code:
Private Sub UserForm_Initialize()
With FrmInsert
    .Liste_Titre_Pers.Value = ""
    .Text_Nom_Pers.Value = ""
    .Text_Prenom_Pers.Value = ""
    .Text_Rue_Pers.Value = ""
    .Text_Cmpl_Adr_Pers.Value = ""
    .Text_CP_Pers.Value = ""
    .Text_Ville_Pers.Value = ""
    .Liste_Cours_Pers.Value = ""
End With
End Sub
Private Sub ButtonCancelPers_Click()
Unload FrmInsert
End Sub
Private Sub ButtonOKPers_Click()
'Insertion sur la ligne selectionnée
    Dim n As Integer
    With Sheets("Liste")
        n = .Range("A1").End(xlDown).Offset(1).Row
        'Essai
        .Cells(n + 1, Range("TITRE").Column).Value = Me.Liste_Titre_Pers
        .Cells(n + 1, Range("NOM").Column).Value = Me.Text_Nom_Pers
        .Cells(n + 1, Range("PRENOM").Column).Value = Me.Text_Prenom_Pers
        .Cells(n + 1, Range("RUE").Column).Value = Me.Text_Rue_Pers
        .Cells(n + 1, Range("ADRESSE").Column).Value = Me.Text_Cmpl_Adr_Pers
        .Cells(n + 1, Range("CP").Column).Value = CDbl(Me.Text_CP_Pers)
        .Cells(n + 1, Range("VILLE").Column).Value = Me.Text_Ville_Pers
        .Cells(n + 1, Range("COURS").Column).Value = Me.Liste_Cours_Pers
        'Tri selon l'ordre alphabétique
        .Range("Liste_Personnes").Sort _
                Key1:=Worksheets("Liste").Columns("B"), _
                Header:=xlYes
    End With
    'Boite de dialogue
    MsgBox "Une personne créée", vbOKOnly, "Message"
    'Reset du formulaire
    Unload FrmInsert
End Sub

Pas besoin de sélectionner la ligne.
J'ai vidé les propriété controlsource des TextBox qui sont ici inutiles puisque tu n'enregistre les information que sur ButtonOKPers_Click. Les modifications se faisant en temps réel si ces propriétés sont renseignées.

A+

[Edit] je joins le fichier modifié
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 998
Membres
103 425
dernier inscrit
alainPontonnier