[VBA] pb de programmation enregistrement
Résolu/Fermé
grace
-
15 juil. 2008 à 14:29
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 16 juil. 2008 à 14:14
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 16 juil. 2008 à 14:14
A voir également:
- [VBA] pb de programmation enregistrement
- Application de programmation - Guide
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Programmation - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
5 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
15 juil. 2008 à 18:02
15 juil. 2008 à 18:02
Bonjour,
As-tu essayé ça :
Avec juste le code, on ne sait pas quelle feuille est active. Ou bien mettre Sheets("Registre").Activate juste avant de faire le While
;o)
As-tu essayé ça :
While Sheets("Registre").Cells(x, 1).Value <> "" x = x + 1 Wend
Avec juste le code, on ne sait pas quelle feuille est active. Ou bien mettre Sheets("Registre").Activate juste avant de faire le While
;o)
petit rectification :
si la saisie de la textbox1 est existante dans la colonne de ma base de données alors afficher un message d'erreur, sinon on peut l'enregistrer
Désolé ! :-s
si la saisie de la textbox1 est existante dans la colonne de ma base de données alors afficher un message d'erreur, sinon on peut l'enregistrer
Désolé ! :-s
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
15 juil. 2008 à 15:31
15 juil. 2008 à 15:31
Grace,
pour ton problème n°1, je suppose que la case A14 se retrouve vide par erreur. Sinon, il n'y a pas de raison que tes données soient saisies à cet endroit là.
pour ton problème n°2, je te propose la modification suivante :
(on cherche la valeur de textbox1 dans la colonne A, comme avec Ctrl+F. Si on en trouve une, alors on met un message d'erreur)
I.
pour ton problème n°1, je suppose que la case A14 se retrouve vide par erreur. Sinon, il n'y a pas de raison que tes données soient saisies à cet endroit là.
pour ton problème n°2, je te propose la modification suivante :
(on cherche la valeur de textbox1 dans la colonne A, comme avec Ctrl+F. Si on en trouve une, alors on met un message d'erreur)
Private Sub Enregistrer_Click() If TextBox1.Value = "" Then MsgBox "Il faut entrer un numero d'étiquette": Exit Sub Else Dim MyRange As Range Set MyRange = Sheets("Registre").Columns(1).Find(TextBox1.Value, , , xlWhole) If Not MyRange Is Nothing Then MsgBox "la valeur '" & TextBox1.Value & _ "' est déjà présente à la ligne " & MyRange.Row Exit Sub End If End If If ComboBox1.Value = "" Then 'reprendre à partir de là ton enchaînement de tests
I.
quoi que je fasse mes données s'inscrivent dans la ligne 14 (que j'ai 1500 lignes de prises ou 4!)
Mon programme est le suivant:
Private Sub Enregistrer_Click()
'message d'erreur si le numero d'étiquette existe déja
If TextBox1.Value = "" Then
MsgBox "Il faut entrer un numero d'étiquette": Exit Sub
Else
Dim MyRange As Range
Set MyRange = Sheets("Registre").Columns(1).Find(TextBox1.Value, , , xlWhole)
If Not MyRange Is Nothing Then
MsgBox "la valeur '" & TextBox1.Value & _
"' est déjà présente à la ligne " & MyRange.Row
Exit Sub
End If
End If
If ComboBox1.Value = "" Then
MsgBox "Choisir un responsable secteur dans la liste"
ElseIf ComboBox2.Value = "" Then
MsgBox "Choisir un secteur dans la liste"
ElseIf ComboBox3.Value = "" Then
MsgBox "Choisir une ligne dans la liste"
ElseIf ComboBox4.Value = "" Then
MsgBox "Choisir un type d'étiquette dans la liste"
ElseIf ComboBox5.Value = "" Then
MsgBox "Déterminer la criticité de l'étiquette"
ElseIf textbox4.Value = "" Then
MsgBox "Il faut entrez une date d'émission"
ElseIf Not IsDate(textbox4.Value) Then
MsgBox "Entrez une date au format jj/mm/aaaa"
Else
<gras>'Enregistrement des valeurs entrées par l'utilisateur dans le registre'
Dim x As Long
x = 4
While Cells(x, 1).Value <> ""
x = x + 1
Wend
Sheets("Registre").Cells(x, 1).Value = Me.TextBox1.Value
Sheets("Registre").Cells(x, 2).Value = Me.ComboBox1.Value
Sheets("Registre").Cells(x, 3).Value = Me.ComboBox2.Value
Sheets("Registre").Cells(x, 4).Value = Me.ComboBox3.Value
Sheets("Registre").Cells(x, 5).Value = Me.TextBox2.Value
Sheets("Registre").Cells(x, 6).Value = Me.TextBox3.Value
Sheets("Registre").Cells(x, 11).Value = Me.ComboBox4.Value
Sheets("Registre").Cells(x, 12).Value = Me.ComboBox5.Value
Sheets("Registre").Cells(x, 7).Value = Me.textbox4.Value
Sheets("Registre").Cells(x, 9).Value = Me.TextBox5.Value
Sheets("Registre").Cells(x, 10).Value = Me.TextBox6.Value
<gras>
'remise à 0 de tous les champs de l'application'
TextBox1.Value = ""
ComboBox1.Value = ""
ComboBox2.Value = ""
ComboBox3.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox4.Value = ""
ComboBox5.Value = ""
textbox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
End If
End Sub
Merci de m'aider c'est urgent et je ne comprend pas ou est mon erreur!
cdt
Mon programme est le suivant:
Private Sub Enregistrer_Click()
'message d'erreur si le numero d'étiquette existe déja
If TextBox1.Value = "" Then
MsgBox "Il faut entrer un numero d'étiquette": Exit Sub
Else
Dim MyRange As Range
Set MyRange = Sheets("Registre").Columns(1).Find(TextBox1.Value, , , xlWhole)
If Not MyRange Is Nothing Then
MsgBox "la valeur '" & TextBox1.Value & _
"' est déjà présente à la ligne " & MyRange.Row
Exit Sub
End If
End If
If ComboBox1.Value = "" Then
MsgBox "Choisir un responsable secteur dans la liste"
ElseIf ComboBox2.Value = "" Then
MsgBox "Choisir un secteur dans la liste"
ElseIf ComboBox3.Value = "" Then
MsgBox "Choisir une ligne dans la liste"
ElseIf ComboBox4.Value = "" Then
MsgBox "Choisir un type d'étiquette dans la liste"
ElseIf ComboBox5.Value = "" Then
MsgBox "Déterminer la criticité de l'étiquette"
ElseIf textbox4.Value = "" Then
MsgBox "Il faut entrez une date d'émission"
ElseIf Not IsDate(textbox4.Value) Then
MsgBox "Entrez une date au format jj/mm/aaaa"
Else
<gras>'Enregistrement des valeurs entrées par l'utilisateur dans le registre'
Dim x As Long
x = 4
While Cells(x, 1).Value <> ""
x = x + 1
Wend
Sheets("Registre").Cells(x, 1).Value = Me.TextBox1.Value
Sheets("Registre").Cells(x, 2).Value = Me.ComboBox1.Value
Sheets("Registre").Cells(x, 3).Value = Me.ComboBox2.Value
Sheets("Registre").Cells(x, 4).Value = Me.ComboBox3.Value
Sheets("Registre").Cells(x, 5).Value = Me.TextBox2.Value
Sheets("Registre").Cells(x, 6).Value = Me.TextBox3.Value
Sheets("Registre").Cells(x, 11).Value = Me.ComboBox4.Value
Sheets("Registre").Cells(x, 12).Value = Me.ComboBox5.Value
Sheets("Registre").Cells(x, 7).Value = Me.textbox4.Value
Sheets("Registre").Cells(x, 9).Value = Me.TextBox5.Value
Sheets("Registre").Cells(x, 10).Value = Me.TextBox6.Value
<gras>
'remise à 0 de tous les champs de l'application'
TextBox1.Value = ""
ComboBox1.Value = ""
ComboBox2.Value = ""
ComboBox3.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox4.Value = ""
ComboBox5.Value = ""
textbox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
End If
End Sub
Merci de m'aider c'est urgent et je ne comprend pas ou est mon erreur!
cdt
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
16 juil. 2008 à 12:26
16 juil. 2008 à 12:26
Voilà, j'ai fait remonter ton topic.
;o)
;o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
16 juil. 2008 à 14:14
16 juil. 2008 à 14:14
De rien et bonne continuation.
;o)
;o)
16 juil. 2008 à 13:15
grace