Problème avec inputbox [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
10 mai 2007
-
Messages postés
2
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
14 mai 2008
-
J'ai un problème avec mon inputbox

Quand je pose ma question et que je rempli ma case dans inputbox cela marche, mais si je fais ok ou annuler sans avoir rentrer de valeur dans ma question cela bloque tout
En faites je voudrai que si je fais annuler ou ok sans avoir taper de valeur qu'un msgbox apparaisse et que en suite je puisse retourner à mon application voici mon programme de recherche :

Aidez moi

Sub montage()


Dim n As Integer
Dim N° As String
Dim Désignation  As String
Dim emplacement As String
Dim cellule As String
Dim types As String
Dim Référence As String
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String


Désignation = Sheets("10XXXX").Cells(2, "G")
types = Sheets("10XXXX").Cells(2, "H")
Référence = Sheets("10XXXX").Cells(2, "I")
emplacement = Sheets("10XXXX").Cells(2, "J")
cellule = Sheets("10XXXX").Cells(2, "K")
a = Sheets("10XXXX").Cells(4, "N")
b = Sheets("10XXXX").Cells(5, "N")
c = Sheets("10XXXX").Cells(6, "N")
d = Sheets("10XXXX").Cells(7, "N")
e = Sheets("10XXXX").Cells(8, "N")


N° = InputBox("entrez le n° de montage")


For n = 3 To 10000
  
 If  N° = Sheets("10XXXX").Cells(n, "B") Then
 
 a = Sheets("10XXXX").Cells(n, "G")
 b = Sheets("10XXXX").Cells(n, "J")
 c = Sheets("10XXXX").Cells(n, "K")
 d = Sheets("10XXXX").Cells(n, "H")
 e = Sheets("10XXXX").Cells(n, "I")
 


 Sheets("recherche").Cells(17, "D") = a
 Sheets("recherche").Cells(19, "D") = d
 Sheets("recherche").Cells(21, "D") = e
 Sheets("recherche").Cells(23, "D") = b
 Sheets("recherche").Cells(26, "D") = c
 Sheets("recherche").Cells(13, "D") = N°
 
 Sheets("recherche").Activate
  
 End If
 
Next
End Sub

12 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
Il te suffit de tester la valeur de N° avant de commencer ta boucle non?
Du style
N° = InputBox("entrez le n° de montage")
'Si rien n'a été entrer alors on sort de la procédureIf N° vbNullString Then Call MsgBox("RIEN N A ETE ENTRER> SORTIE DE LA SUB"): Exit Sub
For n = 3 To 10000
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut,

If  N° = "" Then
    msgbox "message vide"
 
elseif  N° = Sheets("10XXXX").Cells(n, "B") Then
 
 a = Sheets("10XXXX").Cells(n, "G")
 b = Sheets("10XXXX").Cells(n, "J")
 c = Sheets("10XXXX").Cells(n, "K")
 d = Sheets("10XXXX").Cells(n, "H")
 e = Sheets("10XXXX").Cells(n, "I")
 
 Sheets("recherche").Cells(17, "D") = a
 Sheets("recherche").Cells(19, "D") = d
 Sheets("recherche").Cells(21, "D") = e
 Sheets("recherche").Cells(23, "D") = b
 Sheets("recherche").Cells(26, "D") = c
 Sheets("recherche").Cells(13, "D") = N°
 
 Sheets("recherche").Activate
  
 End If
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
testes simplement ta variable...

N° = InputBox("entrez le n° de montage")

If N° = "" Then
    MsgBox "ERREUR"
    Exit Sub
End If

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Oui en effet, j'avais pas vu la boucle for, vaut mieux faire le test avant pour eviter de faire la boucle 10000 fois DSL
Messages postés
12
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
10 mai 2007

Pensez: Réponse acceptée
Merci J.rivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Re,
Si tu estimes que ton problème est résolu pense à appuyer sur le bouton réponse acceptée sur le ou les posts qui ont pu t'aider
(voila ce que veux dire ma signature en plus long)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

J'en profiterais pour contrôler la cohérence  de la saisie


Private Sub Command1_Click()
  No = "a"
  While (Not IsNumeric(No) And No <> "")
    No = InputBox("entrez le n° de montage", "ton titre")
  Wend
  If No = "" Then MsgBox "pas saisi et j'abandonne": Exit Sub
  MsgBox "saisi et je continue"
  'suite de tes instructions
End Sub


 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut et bonjour à tous,

Il a pas bien compris Jrivet ce que tu voulais dire je pense....

A+
Exploreur

 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
C'est la formulation elle-même qui semble troubler certains !
J'en ai repéré quelques-un qui, manifestement, avaient compris qu'en cliquant la-dessus, celà voulait dire qu'on acceptait des réponses (qu'elle étaient bienvenues, donc)...
J'en ai même repéré un qui avait ainsi cliqué "Réponse acceptée" dès la rédaction de sa question (avant même toute réponse).

Remplacer peut-être par "la présente réponse me convient" ou (si trop long) "la présente réponse me va"
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
ou encore "Réponse adéquate" (plus court)
Messages postés
2
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
14 mai 2008

j essaye  de rechercher par nom des salarié (par exp) en utilisant un inputbox et d afficher mon resultat dans des zones de textes
j utilise le vb.net com langage et sql server com bd
voici mon code mé ca marche pa:

Private
Sub parNomDeToolStripMenuItem_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ParNomToolStripMenuItem.Click

Dim commande
As
New SqlCommand

Dim reche

TryDataGridView1.DataSource = DBNull.Value

 

reche = InputBox(

"Entrez le nom que vous voulez rechercher",
"Recherche")commande.CommandText =

"select * from salari‚ where nom_sal like '" & reche & "' "da New SqlClient.SqlDataAdapter(commande)ds

New DataSetda.Fill(ds, commande.CommandText)

DataGridView1.DataSource = ds.Tables(commande.CommandText)

DataGridView1.RefreshEdit()

Me.mat.Text = dt.Rows(rownumber).Item(
"matricule").ToString

Me.nom.Text = dt.Rows(rownumber).Item(
"nom_sal").ToString

Me.prenom.Text = dt.Rows(rownumber).Item(
"prenom_sal").ToString

Me.adresse.Text = dt.Rows(rownumber).Item(
"adr_sal").ToString

Me.ville.Text = dt.Rows(rownumber).Item(
"ville_sal").ToString

Me.nombre.Text = dt.Rows(rownumber).Item(
"nb_enf").ToString

Me.telephone.Text = dt.Rows(rownumber).Item(
"tel_sal").ToString

Me.datenaissance.Text = dt.Rows(rownumber).Item(
"Date_naissance").ToString

Me.situation.Text = dt.Rows(rownumber).Item(
"situation_famil").ToString

Catch ex
As ExceptionDataGridView1.DataSource = dt

End
Try(aidez moi svp cé urgent)

 

 

 
Messages postés
2
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
14 mai 2008

bjr
j ai un formulaire ki permet de changer le mot de passe mé mon code ne marche pa
j travaill avec vb.net et sql server
voici mon code :
If ancien.Text = "" Then
ancien.Focus()
End If
If nouvo.Text = "" Then
nouvo.Focus()
End If
dr = ds.Tables("karima").Rows(Int(rownumber)) If (Me.nouvo.Text Me.confirm.Text) And dr("mot_passe").ToString Me.ancien.Text Then

dr("mot_passe") = Me.nouvo.Text

combuilder = New SqlCommandBuilder(da)
da.Update(ds, "karima")
ds.Clear()
da.Fill(ds, "karima")
dt = ds.Tables("karima")
MsgBox("mot de passe modifié", MsgBoxStyle.Information)
Me.Hide()
authentif.Show
Else

MsgBox("non valide", MsgBoxStyle.Information)

End If