Deduction automatique numéro fiche
Bonjour à tous,
Je suis sur un petit problème surement simple pour des personnes plus compétente que moi en VBA
Alors voila,
Je suis en train de créer un fichier de gestion de dossier via une Userform.
Jusque la pas trop de problème. J'ai créer une fonction de recherche , modification, création, suppression avec vos aides (merci)
Cependant, dans ma colonne A, je souhaiterais gérer automatiquement un numéro de fiche pour chaque dossier
Un chiffre unique s’incrémentant pour chaque dossier.
1 pour le dossier Toto1
2 pour le dossier Toto2
3 pour le dossier Toto3
etc . . .
Je souhaiterais que :
Lorsque je clic sur le bouton "CREER" de ma premiere UserForm, a l'affichage de ma second Userform, que ce Numéro de fiche (Textbox : NUM_FICHE), s'incrémentant automatiquement en fonction de la dernière valeur de la colonne correspondante (Colonne A de ma fiche Excel)
Et évidement, lors de la création de la première fiche que le mon Textbox affiche la valeur 1
Pour le moment j'ai "grisé" cette TextBox et je l'ai vérouillé (Locket = True), car je ne souahite pas qu'il soit modifiable par l'utilisateur.
J'ai fait quelques test infructueux avec la recherche de la dernière ligne non vide et d'ajouter 1 à la valeur de la colonne A ainsi trouvé mais pour le moment pas mal d'erreur de compilation et autre
auriez-vous une solution ?
d'avance merci à vous
Mes nombreux Tests commencent à porter leurs fruits
Je viens de créer le code ci-dessous, qui fonctionne dans ma "Private Sub UserForm_Initialize()",
Lorque ma Userform se lance, je récupéré bien la valeur souhaité, pour le fichier joint ci-dessous 26 car dernière lignes porte le numéro 25
Je suis bien sûr preneur de toutes remarque/critiques constructives qui me permettrait de progresser en VBA
J'ai toujours un problème lors de l'initialisation du tableau et que je souhaite créer le 1er dossier... je n'arrive pas à trouver un contrôle correct...
--------------------- Code ---------------------
'Déclaration des variables de travail
Dim iDerLig As Integer
Dim iNumFich As Integer
'Déduction dernière ligne
iDerLig = Sheets("Fiche de suivi").Range("A" & Rows.Count).End(xlUp).Row
'Affecter la dernière valeur de la colonne A +1
iNumFich = Range("A" & iDerLig) + 1
'Affichage dans ma TextBox
NUM_FICHE.Text = iNumFich
Merci Gmb pour ta réponse
Je suis en train de regarder ton fichier et ton code
Je te fais un retour rapide
Entre temps, je pense avoir trouver une solution à ma problématique.
Je suis en cours de test du code suivant aussi sur la partie d'initialisation de ma UserForm
Private Sub UserForm_Initialize()
'Déclaration des variables de travail
Dim iDerLig As Integer
Dim iNumFich As Integer
'Gestion du Numéro de fiche en fonction de la derniere ligne vide
'Déduction dernière ligne
iDerLig = Sheets("Fiche de suivi").Range("A" & Rows.Count).End(xlUp).Row
' 6 étant le numéro de la premiere ligne après le "menu" de la feuille Excel
' le contrôle de la derniere ligne vide se fait juste après à la ligne 7
If iDerLig = 6 Then
iNumFich = 1
Else
iNumFich = Range("A" & iDerLig) + 1
End If
'Affichage du bon numéro de fiche dans la TextBox "NUM_FICE"
NUM_FICHE.Text = iNumFich
Bonjour
Juste une remarque sur le code que joins dans ton message.
Si tu mets ces instructions dans la macro initialize de l’UserForm fmDossier, tu te prives de pouvoir te servir par la suite de cette macro pour une réinitialisation de cette fiche.
Si tu veux pouvoir ajouter un bouton ‘’Modifier’’ par exemple…
Je préfère pour ma part mettre ces instructions dans celles liées au bouton ‘’Créer’’ de l’UserForm fmAccueil.
Mais, à chacun sa façon de faire…
Bye !
Effectivement gmb
Ta remarque est judicieuse et pertinente
Je dois avouer ne pas y avoir penser car j'ai besoin de ce numéro de fiche qu'une seul fois.
Je la prends en compte et je vais faire de ce pas les modifications !
merci