Resultat d'un useform automatiquement à la suite

  • Initiateur de la discussion Initiateur de la discussion sp3ktroom
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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+
 
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

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:
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
9
Affichages
187
Retour