if then else : seul else se lance !!!

pandaexcel

XLDnaute Nouveau
bonjour,
cela fait plusieurs heures que je cherche mon erreur sans la trouver :
je recupere une valeur d'une textbox est si elle correspond a une cellule contenue dans une plage, la macro doit effacer la ligne
seulement meme si la valeur de la textbox correspont a celle de la cellule
seul la condition else se lance

Private Sub CommandButton1_Click()

Dim i As Integer
TextBox2 = Val(TextBox1.Value)
Sheets("Base de donnée").Select
For i = 1 To Range("a2000").End(xlUp).Row
If Cells(i, 1).Value = TextBox2 Then
Cells(i, 6).EntireRow.Delete
i = i - 1
MsgBox "ligne effacee"
Sheets("Accueil").Select
Unload UserForm1
Panneauprincipal.Show 0
Else
MsgBox "occurence introuvable, veuillez retaper une autre valeur"
Unload UserForm1
UserForm1.Show 0
Exit For
End If
Next


End Sub


une idée ???
 

pierrejean

XLDnaute Barbatruc
Re : if then else : seul else se lance !!!

bonjour pandaexcel

et bienvenue sur XLD

Sans savoir ce qu'il y a dans la colonne A il est difficile de t'aider
Toutefois j'attire ton attention sur le fait que le contenu d'une textbox est toujours du TEXTE (le Val n'y change rien )
Si par hasard la colonne A comporte des nombres il y a lieu d'ecrire
If Cells(i, 1).Value = Cdbl(TextBox2) Then
ou
If Cells(i, 1).Value = Cint(TextBox2) Then

Et en regle générale , sache qu'un fichier exemple nous en dit toujours plus que n'importe quelle info

Edit : Salut Pascal :)
 
G

Guest

Guest
Re : if then else : seul else se lance !!!

Bonjour PandaExcel,

La cause peut provenir de différentes choses.

Mais ce que je peux voir dans ta macro c'est que si les valeurs contenues dans les cellules de références sont des valeurs numerique, elles sont peut-être mal comparées à la valeur du textbox qui comme sont nom l'indique renvoie des valeurs de type textuelle (chaine de caractères) même s'il contient des chiffres. Il se peut donc qu'il y ait une conversion à faire avant comparaison.

si ce n'est pas cela, il nous faut plus de détail et un exemple précis des données, anonymisées.

A bientôt

Edit:pascal;), PierreJean;) j'arrive avec un train de retard!
 

fanfan38

XLDnaute Barbatruc
Re : if then else : seul else se lance !!!

Bonjour
Private Sub CommandButton1_Click()
Dim i As Integer
meserr as byte
meserr=0
TextBox2 = Val(TextBox1.Value)
Sheets("Base de donnée").Select
For i = 1 To Range("a2000").End(xlUp).Row
If Cells(i, 1).Value = TextBox2 Then
Cells(i, 6).EntireRow.Delete
meserr=1
MsgBox "ligne effacee"
exit for
End If
Next
if meserr=1 then
Sheets("Accueil").Select
Unload UserForm1
Panneauprincipal.Show 0
else
MsgBox "occurrence introuvable, veuillez retaper une autre valeur"
UserForm1.textbox1.value=""
UserForm1.textbox2.value=""
endif
End Sub


Bonjour ter tous je suis bien d'accord avec vous un fichier exemple répondrai à beaucoup de question...
A+ François
 
Dernière édition:

pandaexcel

XLDnaute Nouveau
Re : if then else : seul else se lance !!!

merci fanfan38
le programme fonctionne avec ce code :

Private Sub CommandButton1_Click()
Dim i As Integer
TextBox2 = Val(TextBox1.Value)
Sheets("Base de donnée").Select
For i = 1 To Range("a2000").End(xlUp).Row
If Cells(i, 1).Value = TextBox2 Then
Cells(i, 1).EntireRow.Delete
meserr = 1
MsgBox "ligne effacee"
Exit For
End If
Next
If meserr = 1 Then
Sheets("Accueil").Select
Unload UserForm1
Panneauprincipal.Show 0
Else
MsgBox "occurrence introuvable, veuillez retaper une autre valeur"
End If
End Sub

merci a tous et a ce forum
rapide et efficace
 

Discussions similaires

Réponses
6
Affichages
286

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso