Resultat d'un useform automatiquement à la suite

sp3ktroom

XLDnaute Nouveau
Bonjour à tous et merci de l'aide que vous pourrez m'apporter.
Ayant que très peu de connaissances, j'ai beau chercher sur le forum et adapter ce que je trouve, aucune solution ne fonction voila pourquoi je me tourne vers vous.
je dispose d'un useform et je souhaiterais qu'a chaque saisie et après validation par un bouton, les résultats s'affiche a la ligne suivante et que cela efface le contenu de mon useform pour continuer de saisir a la chaine.
Autre probleme vous verrer dans le document joint , a chaque fois que je saisi une case et passe a la suivante le formulaire se ferme.

Voila , dans l'attente de vos contributions.
Merci.
 

Pièces jointes

  • test_excel_downloads.xlsm
    22.3 KB · Affichages: 32
  • test_excel_downloads.xlsm
    22.3 KB · Affichages: 37
  • test_excel_downloads.xlsm
    22.3 KB · Affichages: 39

sp3ktroom

XLDnaute Nouveau
Re : Resultat d'un useform automatiquement à la suite

Bon pur faire suite,

je cherche des solutions mais ca bug , voici un exemple de mes recherche d'apres les sources du forum mais force est de constater que ca ne colle pas .
peut etre un début d'idée?
 

Pièces jointes

  • test_excel_downloads.xlsm
    24.8 KB · Affichages: 33
  • test_excel_downloads.xlsm
    24.8 KB · Affichages: 40
  • test_excel_downloads.xlsm
    24.8 KB · Affichages: 37
C

Compte Supprimé 979

Guest
Re : Resultat d'un useform automatiquement à la suite

Bonsoir,

Ton problème vient du fait que tu ne cherches pas la dernière ligne dans la bonne colonne
Voici le bon code ;)
Code:
Private Sub CommandButton1_Click()  
  Dim L As Long  'Déclaration de variable "L" pour connaitre la Ligne Numéro
'Pour voir se qui se passe je bascule sur la feuille "Collection"
'Sheets("Extincteurs").Activate
  ' Ici c'est le report de la saisie dans la feuille
  With Sheets("Extincteurs")
    ' Ici je repère la dernière ligne vide pour la Collections des données
    L = .Range("A" & Rows.Count).End(xlUp).Row + 1
    For i = 1 To 11
      If Controls("TextBox" & i) <> "" Then .Cells(L, i + 2).Value = Val(Controls("TextBox" & i).Value)
    Next
    .Range("A" & L).Value = TextBox1.Value
  End With
  'Ici je vide les TextBox
  For i = 1 To 11
    Controls("TextBox" & i) = ""
  Next
  'ici je remets le curseur en textbox1
  TextBox1.SetFocus
End Sub

A+
 

sp3ktroom

XLDnaute Nouveau
Re : Resultat d'un useform automatiquement à la suite

Bonjour le Forum,

Et un grand merci a BrunoM45, en effet ton code fonctionne parfaitement, je l'ai donc modifier pour que cela fonctionne sur chaque cellule ce qui jusque la est parfait et exactement ce que je recherchais comme réponse d'autant plus que cela m'a permis de me familiariser un peu plus avec le VBA, mais la route est encore longue.

C'est pourquoi je vais encore faire appel a ton aide, j'ai mis en piece jointe donc mon document avec mes modifications, tu remarqueras que la saisie se fait bien mais en colonne L et M j'ai des données qui s'affichent alors que aucune texte box n'est relier , d'apres les résultats cela semble etre le poids et le prix qui se répettent.
Ce qui me laisse perplexe.

Merci pour les réponses eventuelles.
 

Pièces jointes

  • test_excel_downloads.xlsm
    25.3 KB · Affichages: 39
  • test_excel_downloads.xlsm
    25.3 KB · Affichages: 40
  • test_excel_downloads.xlsm
    25.3 KB · Affichages: 36
C

Compte Supprimé 979

Guest
Re : Resultat d'un useform automatiquement à la suite

Salut sp3ktroom

Dans ta sub CommandButton_Click, tu inscris les valeurs grace à ces lignes
Code:
For i = 1 To 11  If Controls("TextBox" & i) <> "" Then .Cells(L, i+2).Value = Val(Controls("TextBox" & i).Value)
  Next

Mais dans ".Cells(L, i+2)" tu lui indique de commencer 2 colonnes plus loin, donc tu finis dans L et M
Par rapport à ton tableau qui est positionné à partir de la 1ère colonne, il faut supprimer ce "+2"

De plus les lignes suivantes peuvent être supprimées
Tu dois également enlever l'instruction : VAL()
qui te retourne la valeur d'un champ texte (Exemple : Val("1") = 1 / Val("Yann")=0)

Ce qui donne avec le code complet
Code:
Private Sub CommandButton1_Click()  Dim L As Long  'Déclaration de variable "L" pour connaitre la Ligne Numéro
'Pour voir se qui se passe je bascule sur la feuille "Collection"
'Sheets("Extincteurs").Activate
' Ici c'est le report de la saisie dans la feuille
  With Sheets("Extincteurs")
    ' Ici je repère la dernière ligne vide pour la Collections des données
    L = .Range("A" & Rows.Count).End(xlUp).Row + 1
    ' Ici, j'inscrit les valeurs
    For i = 1 To 11
      If Controls("TextBox" & i) <> "" Then .Cells(L, i).Value = Controls("TextBox" & i).Value
    Next
  End With
  'Ici je vide les TextBox
  For i = 1 To 11
    Controls("TextBox" & i) = ""
  Next
  'ici je remets le curseur en textbox1
  TextBox1.SetFocus
End Sub

A+
 
Dernière modification par un modérateur:

sp3ktroom

XLDnaute Nouveau
Re : Resultat d'un useform automatiquement à la suite

Milles Merci BrunoM45, pour ces solution et en même temps cette approche du VBA.
j'avais en effet percuté sur ce +2 mais la syntaxe n'étais pas bonne , j'enlevais le i avec.
Ta solution marche à la perfection, et me fait avancer a grand pas.
Encore Merci de ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 203
Membres
103 767
dernier inscrit
LEONG