Validation d'une base de donnée

Bonjour à tous !

Je ne sais pas ce que j'ai fais mais je n'arrive plus à corriger alors help ! J'ai planché sur ça, fais des recherches sur le web j'ai beau y faire je ne trouve pas de réponse. J'ai créé mon formulaire afin d'alimenter ma base de donnée en Excel évidemment. Tout fonctionne très bien avec mon code vba :

Private Sub Boutoninscrire_Click()

Sheets("Inscriptions").Activate

Range("B27").Select

Selection.End(xlUp).Select

Selection.Offset(1, 0).Select

Mes champs à compléter :

ActiveCell.Offset(0, 1).Value = ChoixRLS

ActiveCell.Offset(0, 2).Value = NUM

ActiveCell.Offset(0, 3).Value = Format(Me.Choixhrs.Value, "hh:mm:ss")

ActiveCell.Offset(0, 4).Value = nomprenom

ActiveCell.Offset(0, 5).Value = choixlangue

End Sub

Alors voici ma problématique. J'ai des lignes vides qui s'insèrent au bas de ma base de donnée dès que je fais une entrée. J'ai essayé avec le xlDown mais cela ne fonctionne pas. Les quelques idées sur google ne m'ont pas aidé non plus. Alors que je suis rendu au bout de mes ressources je viens ici afin d'y trouver de l'aide.

En vous remerciant à l'avance de toute l'aide que vous pourriez m'apporter.

Annie

Bonjour, sans fichier il va être difficile de comprendre pourquoi vous partez de la cellule B27

pour faire ensuite des actives cell ... ?

Il doit y avoir plus simple.

Bonjour Xmenpl,

On a solutionné. J'ai vu votre message avec du retard.

Merci pour le retour.

Annie

Bonjour le fil, bonjour le forum,

Évite les Select autant que tu le peux. Ils ne font que ralentir l'exécution du code et sont source de nombreux bugs.

À moins d'avoir des lignes en-dessous de la base de données, pour atteindre la première ligne vide d'un tableau normal, j'utilise de préférence :

Dim O As Worksheet
Dim PLV As Integer

Set O = Worksheets("Inscriptions")
PLV = O.Cells(Application.Rows.Count, "B").End(xlUp).Row + 1
O.Cells(PLV, "B").Value = ChoixRLS.Value
O.Cells(PLV, "C").Value = NUM.Value
O.Cells(PLV, "D").Value = Format(Me.Choixhrs.Value, "hh:mm:ss")
O.Cells(PLV, "E").Value = nomprenom.Value
O.Cells(PLV, "F").Value = choixlangue.Value

Si c'est un tableau structuré ça donne :

Dim O As Worksheet
Dim TS As ListObject
Dim R As Range
Dim LI As Integer

Set O = Worksheets("Inscriptions")
Set TS = O.ListObjects(1) 'ou le nom du tableau "Tableau1"
Set R = TS.ListColumns.Range.Find("")
If R Is Nothing Or TS.ListRows.Count = 0 Then
    TS.ListRows.Add
    LI = TS.ListRows.Count
Else
    LI = R.Row - TS.HeaderRowRange.Row
End If
TS.DataBodyRange(LI, 1).Value = ChoixRLS
TS.DataBodyRange(LI, 2).Value = NUM
TS.DataBodyRange(LI, 3).Value = Format(Me.Choixhrs.Value, "hh:mm:ss")
TS.DataBodyRange(LI, 4).Value = nomprenom
TS.DataBodyRange(LI, 5).Value = choixlangue

Je n'étais pas informé de ça. Je ne suis pas connaissant de tous les codes.

Merci beaucoup pour cette information, le code c'est nickel !

Annie

Rechercher des sujets similaires à "validation base donnee"