Validation donnée VBA

  • Initiateur de la discussion Ouin-Ouin
  • Date de début
O

Ouin-Ouin

Guest
Bonjour à tous,
Pourquoi la commande ne fonctionne pas? En faite les données ne vont pas dans la feuil3 dans les cellules respectives
Merci de votre aide et excellente journée
Ouin-Ouin

Private Sub CommandButton1_Click()
Dim Ligne As Long
If TextBox1 = "" Then Exit Sub
Ligne = Feuil3.Range("A65536").End(xlUp).Row + 1
Feuil3.Range("A" & CStr(Ligne)) = TextBox1
Feuil3.Range("B" & CStr(Ligne)) = TextBox2
Feuil3.Range("C" & CStr(Ligne)) = TextBox3
Feuil3.Range("D" & CStr(Ligne)) = TextBox4
Feuil3.Range("E" & CStr(Ligne)) = TextBox5
Feuil3.Range("F" & CStr(Ligne)) = TextBox6
Feuil3.Range("G" & CStr(Ligne)) = TextBox7
Feuil3.Range("H" & CStr(Ligne)) = TextBox8
Feuil3.Range("I" & CStr(Ligne)) = TextBox9

End Sub

Private Sub CommandButton4_Click()
Unload Me
End Sub

Private Sub UserForm_Click()

End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = UCase(TextBox1.Text)
End Sub

Private Sub UserForm_Initialize()
TextBox2.MaxLength = 8
End Sub
 
P

Pascal76

Guest
Salut ouin ouin

Tu as oublié le else je pense

Private Sub CommandButton1_Click()
Dim Ligne As Long
If TextBox1 = "" Then Exit Sub
else <=====================ICI
Ligne = Feuil3.Range("A65536").End(xlUp).Row + 1
Feuil3.Range("A" & CStr(Ligne)) = TextBox1
Feuil3.Range("B" & CStr(Ligne)) = TextBox2
Feuil3.Range("C" & CStr(Ligne)) = TextBox3
Feuil3.Range("D" & CStr(Ligne)) = TextBox4
Feuil3.Range("E" & CStr(Ligne)) = TextBox5
Feuil3.Range("F" & CStr(Ligne)) = TextBox6
Feuil3.Range("G" & CStr(Ligne)) = TextBox7
Feuil3.Range("H" & CStr(Ligne)) = TextBox8
Feuil3.Range("I" & CStr(Ligne)) = TextBox9

End Sub


Bon courage

Pascal
 
@

@+Thierry

Guest
Salut Ouin-Ouin, le Forum

Le code que tu as indiqué pour ton CommandButton1 fonctionne pour autant que tout les conditions soient remplies :

1) La TextBox1 existe et contient des données
2) La Feuille "Feuil3" existe au niveau du nom d'objet dans VBE (pas le nom d'onglet)

Sinon on pourrait optimser ton code de cette manière :
Option Explicit

Private Sub CommandButton1_Click()
Dim C As Byte
Dim L As Long

If TextBox1 = "" Then Exit Sub

With Feuil3
L = .Range("A65536").End(xlUp).Row + 1

For C = 1 To 9
.Cells(L, C) = Controls("TextBox" & C)
Next C

End With
End Sub


Bon Courage et Appétit
@+Thierry
 
P

Pascal76

Guest
Re

essaies

Private Sub CommandButton1_Click()
Dim Ligne As Long
If TextBox1 = "" Then Exit Sub
Ligne = Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1
Sheets("Feuil3").Range("A" & Ligne) = TextBox1
Sheets("Feuil3").Range("B" & Ligne) = TextBox2
Sheets("Feuil3").Range("C" & Ligne) = TextBox3
Sheets("Feuil3").Range("D" & Ligne) = TextBox4
Sheets("Feuil3").Range("E" & Ligne) = TextBox5
Sheets("Feuil3").Range("F" & Ligne) = TextBox6
Sheets("Feuil3").Range("G" & Ligne) = TextBox7
Sheets("Feuil3").Range("H" & Ligne) = TextBox8
Sheets("Feuil3").Range("I" & Ligne) = TextBox9

End Sub


Pascal
 
@

@+Thierry

Guest
Bonjour Pascal, re Ouin-Ouin

Non Pascal, le fait de placer l'Argument d'un Condition remplie "If" sur la même Ligne (ce qui est le cas dans cette ligne) :

If TextBox1 = "" Then Exit Sub

N'implique pas l'obligation de cloturer la Condition avec un "End If " mais, en contre partie, empèche toute utilisation du Else en autre argument de condition à la suite.

D'ailleurs je vois que tu as rectifié le tir....

Non pour Ouin-Ouin je pense simplement que sa TextBox1 ne doit pas exister (ou le nom du control est différent "TexBox1" par exemple), et si il avait mis "Option Explicit" en Top de module, VBE lui aurait déjà indiqué cette erreur...

Bon Appétit
@+Thierry
 
P

Pascal76

Guest
Salut Thierry

Oui je m'en suis aperçu en relisant mais après avoir posté que la condition était sur la même ligne.

Voilà ce que c'est d'aller trop vite. La prochaine fois le père Pascal il faudra qu'il relise avant d'envoyer.

Bonne journée

Pascal
 
L

Lord Nelson

Guest
Grrr.....

La question initiale de Ouin-Ouin était celle-ci :

"Auteur: Ouin-Ouin (193.95.118.---)
Date: 20-06-04 10:11

Bonjour tout le forum

cot faire le code pour faire comprendre à Messieurs VBA et Excel ce que je veux faire je m'explique:

pour entre facilement mes fournisseurs j'ai créer un usf jusque là c'est ok....

ma question:

La valeur du TextBox2 doit se mettre dans la feuil3 en Celulle A en retrouvant chaque fois la prochaine ligne de vide
idem pour le TexBox3 qui lui va aussi en feuil3 mais en Cellule B en retrouvant la prochaine ligne vide

ect pour les 10 textbox que j'ai...
bon dimanche à tous et merci de l'aide toujours fort apprécié
Ouin-Ouin"

J'aurais préféré une suite à ce fil plutôt que de retrouver le code que je t'avais passé, sans réponse de ta part, sur un nouveau post.

A+
Horatio
 
@

@+Thierry

Guest
Bonjour Amiral Grrr !

Et oui, à mon avis Ouin-Ouin est un peu jeune dans les Forums, j'avais remarqué qu'il avait tendance à papillonner de fil en fil sans se rendre compte que Ducro se décarcasse !!!

Bon Appétit
@+Thierry
 
O

Ouin-Ouin

Guest
Bonjour Pascal et Thierry, le Forum,
bon ben je crois que j'ai un problème dans le nom de mes feuil ceci étant je ll'ai je crois corrigé j'ai rajouté "Option Explicit" merci Thierry maintenant pour le tips monsieur VBA me répond: Erreur de compilation Variable non définie
merci de votre aide
 
O

Ouin-Ouin

Guest
Re et me revoilà
désolé du passage au passage de fil en fil affectivement je suis un bleu et dans les forumes et en vba mais c'est bon cela vient encore milles excuses à tous

en faite mon code doit aller dans la feuil2 qui se nomme Feuil1
bon appétit à tous quand même et merci et meilleurs salutations de l'afrique oui oui j'y suis vraiment....

Ouin-Ouin
 
L

Lord Nelson

Guest
Salut Ouin-Ouin,

Je crois que c'est le gag de l'année !
Le code que tu avais demandé pour la feuil3 doit maintenant "aller dans la feuil2 qui se nomme Feuil1"

Je ressens un peu de fatigue là tout d'un coup...

A+
Horatio
 
O

Ouin-Ouin

Guest
Salut Horatio Oui et non pour le gag... sorry
mais j'ai bien regarder dans VBA (cette fois )
à gauche dans la fenêtre Microsoft Excel Objet Feuil2 (Feuil1) et oui parce que la Feuil4 se nomme (Feuil2) et si je change les noms j'ai peur ( je suis vraiment débutant ) que mon application première partie fonctionne plus
bon appétit et merci
ouin-ouin
 
O

Ouin-Ouin

Guest
Hello tout le monde,
OUF ca y est presque merci à tous
petit hic...
pourquoi la vaeur va toujours se mettre DANS LA BONNE FEUILLE mais toujours en ligne 23 lors de la saisie et pas à la suite ligne 24 25 26 de plus la ligne 2 est occupée alors cela devrait se mettre en ligne 3...4....5...
merci beaucoup
Ouin-Ouin
 
L

Lord Nelson

Guest
Salut Ouin-Ouin,

Content d'apprendre de tes données vont enfin dans la bonne feuille.
Pour la ligne, si cela ne va pas en 3 mais en 23, c'est que tes cellules de A3 à A22 ne sont pas vides ou bien que le calcul du Numéro de ligne disponible s'effectue sur une autre feuille.

Vérifie que tous les noms dans Sheets sont bien les mêmes :

Ligne = Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1
Sheets("Feuil3").Range("A" & Ligne) = TextBox1

A+
Horatio
 

Discussions similaires

Réponses
6
Affichages
248