Problème avec un textbox VBA sous Excel
Dernière réponse : dans Programmation
Bonjour
je suis novice dans le VBA sous Excel.
j'ai créer un userform dans lequel j'ai mis un textbox.
la valeur du textbox doit être copier dans une cellule A7.
Si il y a déjà du text dans A7 alors la valeur du textbox doit se copier dans A27 puis A47.
Jusqu'à la j'arrive c'est ensuite que sa se gate.
Maintenant si je veux revenir au début admettons que A27 et A47 contiennent déjà du texte, la valeur du textbox devra se mettre automatiquement dans la cellule vide donc A7.
Alors j'ai essayé pas mal de code et à chaque fois que j'effaçais une cellule A7 A27 ou A47 pour que le textbox mette sa valeur il me la copiait dans la cellule vide plus les autres.
Merci d'avance si quelqu'un peut m'aider sa serait super.
Sa me rend dingue
je suis novice dans le VBA sous Excel.
j'ai créer un userform dans lequel j'ai mis un textbox.
la valeur du textbox doit être copier dans une cellule A7.
Si il y a déjà du text dans A7 alors la valeur du textbox doit se copier dans A27 puis A47.
Jusqu'à la j'arrive c'est ensuite que sa se gate.
Maintenant si je veux revenir au début admettons que A27 et A47 contiennent déjà du texte, la valeur du textbox devra se mettre automatiquement dans la cellule vide donc A7.
Alors j'ai essayé pas mal de code et à chaque fois que j'effaçais une cellule A7 A27 ou A47 pour que le textbox mette sa valeur il me la copiait dans la cellule vide plus les autres.
Merci d'avance si quelqu'un peut m'aider sa serait super.
Sa me rend dingue
Autres pages sur : probleme textbox vba excel
Lassé par la pub ? Créez un compte
Hello,
Voici une solution je pense a ton probleme...
Bonne lecture
Voici une solution je pense a ton probleme...
Private ValeurAjoutee As Boolean ' Cette variable passe a True quand on a ajouté une valeur
Const NbCellules As Single = 3 ' nombre de Cellules a tester
Const ValeurAEcrire As String = "YouplaBoumm" ' Ici tu auras ton textbox a la place
Public Sub TestCellule()
' Bon c'est dur d'écrire en VBA quand on est habitué au VB.net
' Je pense que ce code est plutot propre dans l'ensemble
' Enfin propre pour ce que le VBA autorise :)
For i = 1 To NbCellules
Select Case i
Case 1: ValeurAjoutee = TestSiCelluleVide("A1")
Case 2: ValeurAjoutee = TestSiCelluleVide("A2")
Case 3: ValeurAjoutee = TestSiCelluleVide("A3")
End Select
' Si on a inscrit une valeur, on quitte notre boucle.
' Pas la peine d'aller plus loin
If ValeurAjoutee Then Exit For
Next i
' Si on a pas ajouté de valeur, on inscrit notre valeur a un endroit précis
If ValeurAjoutee = False Then Range("A1").Value = ValeurAEcrire
End Sub
Private Function TestSiCelluleVide(Cellule As String) As Boolean
' On teste pour chaque cellule si elle est vide
' Si oui, on inscrit notre valeur et on renvoit TRUE (ret pour return)
Dim ret As Boolean
ret = IsEmpty(Range(Cellule).Value)
If ret Then Range(Cellule).Value = ValeurAEcrire
TestSiCelluleVide = ret
End Function
Bonne lecture
Salut
je te remercie déjà de m'aider j'ai essayé avec ton code mais par contre je ne sais pas si je dois le mettre dans un module ou dans le bouton d'enclenchement du userform (j'ai essayé les deux à chaque fois il me mettait l'erreur instruction end sub attendu et une fois que j'en mettais un il me surlignait Private valeur ajouté as boolean j'ai aussi essayé avec dim valeur ajouté as boolean alors la c'est le const nbcellules qui veut plus.
voila lol si tu peux encore m'aider sa serait nikel
a+
je te remercie déjà de m'aider j'ai essayé avec ton code mais par contre je ne sais pas si je dois le mettre dans un module ou dans le bouton d'enclenchement du userform (j'ai essayé les deux à chaque fois il me mettait l'erreur instruction end sub attendu et une fois que j'en mettais un il me surlignait Private valeur ajouté as boolean j'ai aussi essayé avec dim valeur ajouté as boolean alors la c'est le const nbcellules qui veut plus.
voila lol si tu peux encore m'aider sa serait nikel
a+
Hello,
mets le tout dans un module si tu veux.
ensuite tu lances"TestCellule" via un bouton
Attention les déclarations (private/const, etc) doivent etre tout en haut du module , rien ne doit etre écrit avant ces lignes (pas de sub ou autre)
tu modifies aussi ceci :
Const ValeurAEcrire As String = "YouplaBoumm"
Public Sub TestCellule()
par
Public Sub TestCellule(ValeurAEcrire As String)
Dans ton code de Bouton_Click tu fais :
TestCellule(Textbox.text)
Voila,
a+
nico
mets le tout dans un module si tu veux.
ensuite tu lances"TestCellule" via un bouton
Attention les déclarations (private/const, etc) doivent etre tout en haut du module , rien ne doit etre écrit avant ces lignes (pas de sub ou autre)
tu modifies aussi ceci :
Const ValeurAEcrire As String = "YouplaBoumm"
Public Sub TestCellule()
par
Public Sub TestCellule(ValeurAEcrire As String)
Dans ton code de Bouton_Click tu fais :
TestCellule(Textbox.text)
Voila,
a+
nico
Oui désolé j'avais pas capté tout de suite le public sub effectivement j'ai fais les changements que tu ma dis car c'est vrai qu'avec Const ValeurAEcrire As String = "YouplaBoumm" sa me donnais tout le temps Youplaboumm.
Donc maintenant le code parait bon vue qu'il n'y a pas d'erreur détecté, mais par contre il ne m'affiche pas la valeur du textbox dans la cellule en fait il ne m'affiche rien apparement (mais c'est que l'avis d'un novice lol) il semblerait qui ne prend pas en compte la variable ValeurAEcrire as string qui nomme textbox.text
J'ai essayé avec as variant et d'autres rien non plus.
merci encore de ton aide je sent qu'on touche au but lol
Donc maintenant le code parait bon vue qu'il n'y a pas d'erreur détecté, mais par contre il ne m'affiche pas la valeur du textbox dans la cellule en fait il ne m'affiche rien apparement (mais c'est que l'avis d'un novice lol) il semblerait qui ne prend pas en compte la variable ValeurAEcrire as string qui nomme textbox.text
J'ai essayé avec as variant et d'autres rien non plus.
merci encore de ton aide je sent qu'on touche au but lol
salut
voila ce qu'il y a dans mon bouton: (mon textbox s'appelle textbox1)
Private Sub CommandButton1_Click()
sheets"blabla".activate
Call TestCellule(TextBox1.Text)
et ce qu'il y a dans mon module:
Private ValeurAjoutee As Boolean
Const NbCellules As Single = 3
Public Sub TestCellule(ValeurAEcrire As String)
For i = 1 To NbCellules
Select Case i
Case 1: ValeurAjoutee = TestSiCelluleVide("P7")
Case 2: ValeurAjoutee = TestSiCelluleVide("P27")
Case 3: ValeurAjoutee = TestSiCelluleVide("P47")
End Select
If ValeurAjoutee Then Exit For
Next i
If ValeurAjoutee = False Then Range("P7").Value = ValeurAEcrire
End Sub
Private Function TestSiCelluleVide(Cellule As String) As Boolean
Dim ret As Boolean
ret = IsEmpty(Range(Cellule).Value)
If ret Then Range(Cellule).Value = ValeurAEcrire
TestSiCelluleVide = ret
Unload userform1
End Function
Voila j'ai rien d'autre dans le bouton ou le module j'ai tous effacé pour être sur.
voila ce qu'il y a dans mon bouton: (mon textbox s'appelle textbox1)
Private Sub CommandButton1_Click()
sheets"blabla".activate
Call TestCellule(TextBox1.Text)
et ce qu'il y a dans mon module:
Private ValeurAjoutee As Boolean
Const NbCellules As Single = 3
Public Sub TestCellule(ValeurAEcrire As String)
For i = 1 To NbCellules
Select Case i
Case 1: ValeurAjoutee = TestSiCelluleVide("P7")
Case 2: ValeurAjoutee = TestSiCelluleVide("P27")
Case 3: ValeurAjoutee = TestSiCelluleVide("P47")
End Select
If ValeurAjoutee Then Exit For
Next i
If ValeurAjoutee = False Then Range("P7").Value = ValeurAEcrire
End Sub
Private Function TestSiCelluleVide(Cellule As String) As Boolean
Dim ret As Boolean
ret = IsEmpty(Range(Cellule).Value)
If ret Then Range(Cellule).Value = ValeurAEcrire
TestSiCelluleVide = ret
Unload userform1
End Function
Voila j'ai rien d'autre dans le bouton ou le module j'ai tous effacé pour être sur.
Hello,
Alors 2 problemes detectés
1. ton Unload userform1 tu le mets après ton call pas dans la fonction....
2. ma ValeurAEcrire étant une const, je la passais tranquille entre les fonctions. La c différent donc :
A+
Nico
Alors 2 problemes detectés
1. ton Unload userform1 tu le mets après ton call pas dans la fonction....
2. ma ValeurAEcrire étant une const, je la passais tranquille entre les fonctions. La c différent donc :
Private Sub TestCellule(ValeurAEcrire As String)
For i = 1 To NbCellules
Select Case i
Case 1: ValeurAjoutee = TestSiCelluleVide("P7", ValeurAEcrire)
Case 2: ValeurAjoutee = TestSiCelluleVide("P27", ValeurAEcrire)
Case 3: ValeurAjoutee = TestSiCelluleVide("P47", ValeurAEcrire)
End Select
If ValeurAjoutee Then Exit For
Next i
If ValeurAjoutee = False Then Range("P7").Value = ValeurAEcrire
End Sub
Private Function TestSiCelluleVide(Cellule As String, ValeurAEcrire As String) As Boolean
Dim ret As Boolean
ret = IsEmpty(Range(Cellule).Value)
If ret Then Range(Cellule).Value = ValeurAEcrire
TestSiCelluleVide = ret
End Function
A+
Nico
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumFormat dans textbox vba excel
- solutionsImposer format textbox vba excel
- solutionsFormat textbox vba - excel
- ForumSoucis textbox vba excel 2003
- ForumPlusieur chiffre dans un textbox vba excel
- ForumForcer integer textbox vba excel
- ForumTextbox vba excel
- ForumAffichage retour chariot textbox vba excel
- ForumVba excel textbox - integer
- ForumVba excel textbox vers textbox
- Voir plus