Formulaire pour remplir tableau Le sujet est résolu

Forum pour toutes vos questions à propos d'Excel (avec ou sans macros) ...
CmMiro
Membre habitué
Membre habitué
Messages : 56
Inscrit le : 12 juin 2018
Version d'Excel : 2016

Message par CmMiro » 13 juin 2018, 16:03

Bonjour à tout le monde :D
ceci est mon deuxième message sur le forum.

Je suis débutant en vba , je commence à bosser sur formulaire qui rempli un tableau.
J'ai fait le formulaire par contre je bloque sur la partie pour faire passer ce que l'utilisateur aura saisi et le mettre dans le tableau (après avoir appuyer sur un bouton "valider")
Le fichier est mal organisé :oops: cependant, je mets le bout de code que j'ai écrit :

Private Sub Valider_Click()
Sheets("Affaire").Activate
If ComboBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
MsgBox ("Vous n'avez pas saisie toutes les informations requises")
Else
'recherche de l'indice de premiere ligne dispo
Dim Lin As Integer
Lin = 3
While IsEmpty(Range("B" & Lin)) = False
Lin = Lin + 1
Wend
'remplir dans premiere ligne dispo
Range(“B” & Lin).Value = TextBox2 ????
Range(“C” & Lin) = ComboBox1
Range(“D” & Lin) = TextBox3

Unload Ajouter_Affaire
End If
End Sub

Le problème est dans la partie en rouge.
Merci d'avance pour vos clarifications :D
Avatar du membre
Juice
Membre dévoué
Membre dévoué
Messages : 532
Appréciations reçues : 35
Inscrit le : 28 novembre 2017
Version d'Excel : Microsoft Excel 2010

Message par Juice » 13 juin 2018, 16:39

Bonjour CmMiro,

Ce qui fonctionne chez moi c'est ceci :

Code : Tout sélectionner

Private Sub CommandButton_Valider_Click()
Range("A1") = TextBox.Value 'La cellule A1 prendra la valeur entré dans le champs de l'UF
Unload Mon_UserFrom 'Ferme l'UF
End Sub
Dans ton bout de code je ne vois pas le ".Value" qui suit tes TextBox & Combox.

Essaye et reviens vers nous :)
1 membre du forum aime ce message.
A l'instant même où je l'ai vue, ingénue,
Je suis tombé amoureux d'eeeeeeelle.
Elle est la seule ici bas,
Que je trouve digne de moi.
Et je compte bien épouser cette demoiseeeeelle.

La Belle et la Bête. Belle
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 16731
Appréciations reçues : 391
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 13 juin 2018, 16:50

Bonsoir,

C'est quelque peu brouillon et peu efficace : variable non déclarées en tête de procédure (avant tout code exécutable), activation de feuille, objets Range non qualifiés, etc.

Théoriquement, rien ne devrait cependant l'empêcher de fonctionner ! :wink: Mais Juice n'a pas tort en soulevant la question des propriétés par défaut des contrôles, j'y insiste régulièrement aussi car VBA paraît quelque peu instable dans leur prise en compte.

Maintenant on ne voit que le code et on ne sait donc pas à quels éléments il réfère et si ceux-ci sont conformes...

Cordialement.
1 membre du forum aime ce message.
CmMiro
Membre habitué
Membre habitué
Messages : 56
Inscrit le : 12 juin 2018
Version d'Excel : 2016

Message par CmMiro » 14 juin 2018, 09:10

Bonjour,

merci de vos réponses, je vais essayer de prendre en compte vos remarques et si ça bloque toujours j'organiserai mon code et je le posterai pour plus de clarté :D .

Cordialement,
CmMiro
Membre habitué
Membre habitué
Messages : 56
Inscrit le : 12 juin 2018
Version d'Excel : 2016

Message par CmMiro » 14 juin 2018, 09:39

Rebonjour,

Ça donne le même problème, je vous mets mon fichier pour mieux comprendre ce que je souhaite faire :D

Merci d'avance pour vos réponses.
Fichiers joints
MonClasseurVBA.xlsm
(28.59 Kio) Téléchargé 18 fois
Avatar du membre
Juice
Membre dévoué
Membre dévoué
Messages : 532
Appréciations reçues : 35
Inscrit le : 28 novembre 2017
Version d'Excel : Microsoft Excel 2010

Message par Juice » 14 juin 2018, 10:00

CmMiro,

L'erreur venait de la déclaration de ta variable "Lin" . Je te propose donc de remplacer dans ton code :

Code : Tout sélectionner

Dim Lin As Integer
Lin = 3
While IsEmpty(Range("B" & Lin)) = False
Lin = Lin + 1
Wend
'remplir dans premiere ligne dispo
Range(“B” & Lin) = TextBox1.Value
Range(“C” & Lin) = ComboBox1.Value
Range(“D” & Lin) = TextBox2.Value
Par ceci :

Code : Tout sélectionner

Dim Lin As Long
Lin = 3
Do While Not IsEmpty(Range("B" & Lin))
Lin = Lin + 1
Loop
'remplir dans premiere ligne dispo
Range("B" & Lin) = TextBox1.Value
Range("C" & Lin) = ComboBox1.Value
Range("D" & Lin) = TextBox2.Value
Unload UserForm1
J'ai tester avec ce que je te donne et sa fonctionne pou ce que tu veux faire :)

Restant à ta disposition pour toute autre info !
1 membre du forum aime ce message.
A l'instant même où je l'ai vue, ingénue,
Je suis tombé amoureux d'eeeeeeelle.
Elle est la seule ici bas,
Que je trouve digne de moi.
Et je compte bien épouser cette demoiseeeeelle.

La Belle et la Bête. Belle
CmMiro
Membre habitué
Membre habitué
Messages : 56
Inscrit le : 12 juin 2018
Version d'Excel : 2016

Message par CmMiro » 14 juin 2018, 10:11

rebonjour,

Merci, ça a marché.
Je vous remercie tous pour votre aide :D

Cordialement,
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message