Excel Ajout données avec un formulaire

  • Initiateur de la discussion Initiateur de la discussion fresnais
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fresnais

Guest
Bonjour à tous

J'aurais besoin d'un petit coup SVP
J'ai créé Une feuille Excel "BIR_2019" ainsi qu'un formulaire de saisie Formulaire_Geometre
mais celui-ci ne passe pas à la ligne suivante après avoir ajouté des données
J'ai surement oublié un petit quelque chose dans la partie du formulaire ajout de donné
 

Pièces jointes

Bonjour Fresnais, bonjour le forum,

Vite fait sans tester...

VB:
Private Sub btnAjout_Click()
Dim O As Worksheet
Dim DEST As Range
Set O = Worksheets("BIR_2019").Activate
If O.Range("A5") = "" Then Set DEST = O.Range("A5") Else Set DEST = O.Range("A4").End(xlDown).Offset(1, 0)
DEST.Value = CboNomClient.Value
DEST.Offset(0, 1).Value = TxtRefClient
DEST.Offset(0, 6).Value = TxtOT
DEST.Offset(0, 7).Value = TxtBDD
DEST.Offset(0, 2).Value = TxtAdresse
DEST.Offset(0, 3).Value = CboVilleCodePostal
DEST.Offset(0, 12).Value = CboConducteursTravaux
DEST.Offset(0, 15).Value = CboEntreprises
DEST.Offset(0, 16).Value = CboNomsPrenomsEntreprises
DEST.Offset(0, 13).Value = CboGeometre
DEST.Offset(0, 14).Value = CboCartographes
DEST.Offset(0, 18).Value = TxtDateInterventionTerrain
DEST.Offset(0, 17).Value = CboMaterielsTopo
DEST.Offset(0, 19).Value = TxtPrecision2D
DEST.Offset(0, 20).Value = TxtPrecision3D
End Sub

[Édition] J'ai édité en lisant la solution de D.D
 
Re,

@chris
Attention ! sur un tableau de type ListObject cela renvoie la dernière ligne du tableau, pas la dernière ligne éditée de la colonne. Par exemple, sur un tableau 5 colonnes, 30 lignes dont 15 lignes à peine sont remplies. Le code va renvoyer la ligne 31 et pas la ligne 16...
 
Bonjour à tous
Re,

@chris
Attention ! sur un tableau de type ListObject cela renvoie la dernière ligne du tableau, pas la dernière ligne éditée de la colonne. Par exemple, sur un tableau 5 colonnes, 30 lignes dont 15 lignes à peine sont remplies. Le code va renvoyer la ligne 31 et pas la ligne 16...

Pour ma part je n'ai pas donné de code... C'est chris24

Pour ma part en VBA je préfère coder avec le possibilités des listobjects pas selon les ranges anciens...

De même qu'en BD on ne crée pas d'enregistrements vides, dans un tableau structuré ou Table, on ne crée par de lignes vides sinon le tableau perd 99% de son utilité...
 
En fait le problème venait aussi du tableau de type ListObject.
Le code suivant
Sheets("BIR_2019").Activate
Range("A1").Select
Selection.End(xlDown).Select ' on se positionne sur la dernière ligne non vide

nous amene non pas à la dernière ligne non vide mais au début du tableau ListObject.

D'ou le fait le mettre le range("A4") oblige déjà à se placer au début du tableau
et le Selection.End(xlDown).Select force ensuite à se déplacer dans le tableau.

S'il n'y avait pas eu un tableau du type ListObject, le code aurait bien fonctionné.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour