Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

compteur d'enregistrements

D

daniel

Guest
Bonjour à toutes et tous !

Je travaille sur une base de données sous Excel avec une structure de recherche en VBA. J'ai créé un Userform qui charge les enregistrements, permet de passer de l'un à l'aute, de les effacer etc...

Je voudrais pouvoir afficher sur ce formulaire
- le nombre d'enregistrements contenus dans ma base
- le numéro de l'enregistrement affiché

Voilà, j'espère n'avoir pas été trop confus. Pourriez-vous maider ?

Merci !

Daniel
 
F

Faro

Guest
Pour le nombre d'enregistrement (si ta base est sous Excel) tu fais :

DerLig = .Range("A65536").End(xlUp).Row

cela devrait te donner la valeur de la dernière ligne.
Si tu as un entète un titre ou autre, enlève a cette formule le nombre de ligne au dessu de la premier ligne de ta base de donnée
si tu as juste les entète par exemple et un titre (ligne A et B), tu fais ca :

DerLig = .Range("A65536").End(xlUp).Row - 2

Faro
 
D

daniel

Guest
Merci !

Salut,

Merci beaucoup, ça a marché ! Mais comment faire pour indiquer le numéro de l'enregistrement? je désirerais avoir un affichage du genre :


enregistrement x sur n enregistrements


Merci pour votre aide !

Daniel
 
@

@+Thierry

Guest
Salut Daniel, Faro, le Forum

Huum pour connaître le numéro d'enregistrement il faudrait d'abord connaitre la méthode que tu utilises pour "charger les enregistrements" ?

En effet sans savoir si il s'agit d'une ListBox (par exemple) c'est assez vague pour te répondre... Ensuite il faudrait savoir par quelle propriété tu alimentes cette ListBox (RowSource, AddItem, List ?)... etc

Si, par exemple, c'est RowSource sur une ListeBox, c'est assez facile en sachant que le premier enregistrement d'une ListeBox démarre à Zéro, et d'appliquer le décalage adéquat...

Exemple sur une ListBox Alimentée par "RowSource" :

Matériel nécessaire :
1 Feuille Excel nommée "Feuil1" contenant des donnée en colonne "A" depuis "A2" ("A1" étant l'entête)
1 Userform
1 ListBox nommée ListBox1

Tu copies ce code dans le Private Module du UserForm1 :

Option Explicit

Private Sub UserForm_Initialize()
Dim L As Integer
L = Sheets("Feuil1").Range("A65536").End(xlUp).Row
ListBox1.RowSource = "Feuil1!A2:A" & L
End Sub

Private Sub ListBox1_Click()
MsgBox "Le Numéro de l'enregistrement est " & ListBox1.ListIndex + 1 _
& " sur un total de " & ListBox1.ListCount & " enregistrements"
End Sub

Voilà ce que çà donne
Bon Dimanche
@+Thierry
 
D

daniel

Guest
Plus de détails

Merci Thierry, de ton aide

Malheureusement, je n'ai pas réussi ! (je suis novice...). Voilà plus de détails sur la façons dont je charge mes données dans mon userform (appelé gestiondonnées). En fait, j'obtiens le "même" résultat qu'avec le formulaire d'Excel (menu données). J'ai crée dans ce formulaire une barre de défilement, pour passer d'un enregistrement à l'autre, et j'aimerais faire apparaître quelle est le "numéro" de chaque enregistrement (en fait, le numéro de chaque ligne de la base de données). J'espère que je ne suis pas trop confus...


' CHARGEMENT DES DONNEES DANS LE FORMULAIRE
Private Sub LoadRecord()
'Copie les valeurs de rgData de la feuille de calcul dans le tableau vaData
vaData = rgData.Value
'Affecte les valeurs du tableau aux contrôles de fmGestionDonnées
txSaisieFrançais.Value = vaData(1, 1)
txSaisieAnglais.Value = vaData(1, 2)
txSaisieEspagnol.Value = vaData(1, 3)
txSaisieAutreF.Value = vaData(1, 4)
txSaisieAutreA.Value = vaData(1, 5)
txSaisieAutreE.Value = vaData(1, 6)
txSaisieAbrF.Value = vaData(1, 7)
txSaisieAbrA.Value = vaData(1, 8)
txSaisieAbrE.Value = vaData(1, 9)
cbSaisieFamille.Value = vaData(1, 10)
cbSaisieVoc.Value = vaData(1, 11)
txCommentaires.Value = vaData(1, 12)
End Sub

Merci encore

Daniel
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…