Les Allergies
Alimentaires
Posez votre question Signaler

VBA -Excel pb de boucle: Exit Sub [Résolu]

onra - Dernière réponse le 10 juil. 2008 à 10:13
Bonjour,
J'essaye de monter un code qui me permttent de lire des valeurs d'une base de données (sous excel) à travers des TextBox d'un UserForm.
Dans un 1er temps:
Le code va chercher dans la colonne 1 la valeur = à Nchrono
Si il trouve il copie dans le TextBox (Lot1), la valeur correspondante dans la cellule "C"&h.
Ensuite il teste dans la colonne 1 la valeur en dessous et si elle est toujours = à Nchrono alors il copie "C"&h+1 dans la TextBox (Lot2)
Si le dernier test n'est pas bon alors il sort du Sub
Si il est bon, il sort du SUb
(Il y a 2 sorties, car je ne vous donne qu'un extrait, normalement il y a 10 TextBox par ligne sur 8 lignes)
Le problème est que la première sortie ne marche pas , et donc il copie quoi qu'annonce la cellule (h+1,1)
Voici le bout de code que j'ai monter. Je me rend bien compte qu'il est très lourd, mais j'ai pas trouver mieux...
Private Sub reactualiser_Click()
Dim Cell As Range
Dim h As Integer
Workbooks("Bdd").Worksheets("Bdd").Activate
For h = 1 To 1000
If Val(Cells(h, 1)) = Val(Nchrono) Then
Lot1.ControlSource = "C" & h
If Not (Val(Cells(h + 1, 1)) = Val(Nchrono)) Then
Exit Sub
End If
Dim h2 As Integer
h2 = h + 1
Lot2.ControlSource = "C" & h2
Exit Sub
End If
Next h
End Sub
Merci de votre coup de main
A plus
Lire la suite 

VBA -Excel pb de boucle: Exit Sub »

2 réponses
Réponse
+0
moins plus
bonjour,
essaye un peu avec ceci...
    If Val(Cells(h, 1).value) = Val(Nchrono) Then 
        Lot1.ControlSource = "C" & h 
    else
        Exit Sub 
   End If 

A+
onra - 10 juil. 2008 à 10:13
Salut,
Merci de m'avoir répondu.
J'ai pas trop suivi ce que tu m'a conseillé, parce qu'en voulant simplifier le problème , je me suis apercu que je n'avais pas donner tous les éléments.
Mais j'ai tout de même réusssi à faire une bidouille qui marche pas trop mal.
Donc à titre indicatif, voilà la solution:

Private Sub reactualiser_Click()
Dim Cell As Range
Dim h As Integer
Workbooks("Bdd").Worksheets("Bdd").Activate
For h = 3 To 1000
If Val(Cells(h, 1)) = Val(Nchrono) Then
If CStr(Cells(h, 2)) = CStr(indice) Then
Lot1.ControlSource = "C" & h
If Not (Val(Cells(h + 1, 1)) = Val(Nchrono)) Then
Exit Sub
End If
If Not (CStr(Cells(h + 1, 2)) = CStr(indice)) Then
Exit Sub
End If
Dim h2 As Integer
h2 = h + 1
Lot2.ControlSource = "C" & h2
Exit Sub
End If
End If
Next h
End Sub


En tout cas c'est agréable de voir qu'il y a des gens toujours présents pour répondre. Donc certainement à une prochaine pour un AUTRE problème

Merci encore
Ajouter un commentaire
Ce document intitulé « VBA -Excel pb de boucle: Exit Sub » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?