Se positionner sur la dernière ligne vide pour nouvelle saisie - Forum VB / VBA

A voir également:Se positionner sur la dernière ligne vide pour nouvelle saisieDernière ligne vide vba - Conseils pratiques - Visual Basic Problème avec macro trouver la dernière ligne vide ✓ - Forum - VB / VBA VBA_Suppression de la dernière ligne vide ✓ - Forum - Excel VBA recherche derniere ligne vide ✓ - Forum - VB / VBA Est-il possible de connaitre la dernière ligne vide d'une plage ✓ - Forum - VB / VBA

Bonsoir ;
je suis débutant dans VBA, je réalise de petits formulaires pour m'aider dans mes travaux de saisie multiple.
le code ci-dessous enregistre dans chaque tableau de la feuille les données que j'entre en fonction du choix de la feuille spécifiée.
le problème c'est que :
1- Pour le premier enregistrement j'arrive pas à me positionner sur la dernière ligne, celle juste après les en-têtes.
le message renvoyé est celui-ci : "ERREUR D'EXECUTION '438' : PROPRIETE OU METHODE NON GEREE PAR CET OBJET" ou encore le ERREUR D'EXECUTION '9'.
Tout s'arrête par la suite
2- Je souhaite forcer la majuscule dans les champs "texte1, texte2, texte3"
3- Enfin je désire interdire tout enregistrement tant que tous les champs ne sont pas renseignés.
Merci de m'aider.

code vba

'Procédure permettant de fermer le formulaire

Private Sub btnfermer_Click()
Unload Me
End Sub

'Procédure permettant l'initialisation du formulaire

Private Sub UserForm_Initialize()
Dim Feuille As Worksheet

'Nous parcourons toutes feuilles du classeur
For Each Feuille In Worksheets
Select Case Feuille.CodeName 'CodeName est le nom de code de la feuille
'On retire de la combobox les feuilles à ne pas afficher
Case "Feuil2", "Feuil3"
'Et on prend le reste des feuilles
Case Else
'On charge les noms dans la liste déroulante
Me.cboChoixClasse.AddItem Feuille.Name
End Select
Next Feuille
End Sub

'Procédure permettant de réinitialiser le formulaire

Private Sub btnEffacer_Click()

cboChoixClasse = ""
texte1 = ""
texte2 = ""
texte3 = ""
texte4 = ""
texte5 = ""
texte6 = ""
End Sub

'Procédure permettant d'ajouter un nouvel enregistrement
'à la fin du tableau

Private Sub btnAjout_Click()
Dim nbControle As Integer
Dim Nouvelleligne As Range
Dim MaFeuille As String

'Procédure permettant d'obliger le remplissage de tous les champs
'On teste la saisie de tous les champs dans le formulaire

If Len(texte1) = 0 Then
lblMessage = "Veuillez saisir le Nom de l'élève"
Me.texte1.SetFocus
ElseIf Len(texte2) = 0 Then
lblMessage = "Veuillez saisir le Prénom de l'élève"
Me.texte2.SetFocus
ElseIf Len(texte3) = 0 Then
lblMessage = "Veuillez saisir la Date de Naissance de l'élève"
Me.texte3.SetFocus
ElseIf Len(texte4) = 0 Then
lblMessage = "Veuillez saisir le Lieu de Naissance de l'élève"
Me.texte4.SetFocus
ElseIf Len(texte5) = 0 Then
lblMessage = "Veuillez saisir le Matricule de l'élève"
Me.texte5.SetFocus
ElseIf Len(texte6) = 0 Then
lblMessage = "Veuillez Selectionner le Sexe de l'élève"
Me.texte6.SetFocus
ElseIf Len(cboChoixClasse) = 0 Then
lblMessage = "Veuillez Selectionner le Niveau d'étude de l'élève"
Me.cboChoixClasse.SetFocus
Else
End If

'On recupère le nom de la feuille de la liste déroulante
MaFeuille = cboChoixClasse.Value

'On teste qu'il y'a bien le nom d'une feuille de selectionnée
If Me.cboChoixClasse.Value = "" Then

MsgBox "Veillez selectionner la classe dans laquelle sera enregistré(e) l'élève" & " ", vbOKOnly + vbInformation, "VALIDATION"
Exit Sub
End If

'On recupère le nombre de contrôle dans le userform
nbControle = 6

'On se positionne sur la dernière ligne vide de la table de données
Set Nouvelleligne = Sheets(MaFeuille).Cells(Rows.Cont, 1).End(xlUp).Offset(1, 0)
For X = 1 To nbControle
Nouvelleligne = Me.Controls("texte" & X).Value
Set Nouvelleligne = Nouvelleligne.Offset(0, 1)
Next X

'On réinitialise les champs du formulaire à vide
For X = 1 To nbControle
Me.Controls("texte" & X).Value = ""
Next X

cboChoixClasse.Value = ""

'On affiche un message confirmant la nouvelle saisie dans la table
MsgBox "Le (la) nouvel(le) élève a bien été ajouté sur la feuille :" & MaFeuille, vbOKOnly + vbInformation, "VALIDATION"
End Sub

Forum

A voir également:Se positionner sur la dernière ligne vide pour nouvelle saisieDernière ligne vide vba - Conseils pratiques - Visual Basic Problème avec macro trouver la dernière ligne vide ✓ - Forum - VB / VBA VBA_Suppression de la dernière ligne vide ✓ - Forum - Excel VBA recherche derniere ligne vide ✓ - Forum - VB / VBA Est-il possible de connaitre la dernière ligne vide d'une plage ✓ - Forum - VB / VBA

Web: www.shapebootstrap.net

1 réponse

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,
'premiere cellule vide colonne A With Sheets(MaFeuille)         Nouvelleligne = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row         If Nouvelleligne = 1 Then             Nouvelleligne = Nouvelleligne + 1         End If         'écriture sur ligne         For X = 1 To 6             .Cells(Nouvelleligne, X) = Me.Controls("texte" & X).Value             Me.Controls("texte" & X).Value = ""         Next X End With

Dire « Merci » 4

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 62309 internautes nous ont dit merci ce mois-ci

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed