Poroblème affichage de données

lironik

XLDnaute Nouveau
Bonjour le forum
Voici mon code d'origine
Code:
Dim i%, j as integer

i=nbprestations.value

For j = 1 to 12
     quantite.visible = True
     designation.visible = true
     controls("labelP" & j).visible = (j <= i)
     Controls("designationP" & j).Visible = (j <= i)
     Controls("quantiteP" & j).visible = (j <= i)
Next

Désormais je voudrais que le quantite et Controls("quantiteP" & j) ne soit visible que si Controls("designationP" & j) prend la valeur "Remplacement soufflet de cardan". Voilà le code que j'ai élaboré:

Code:
Dim i%, j as integer

i=nbprestations.value

For j = 1 to 12
     quantite.visible = True
     designation.visible = true
     controls("labelP" & j).visible = (j <= i)
     Controls("designationP" & j).Visible = (j <= i)     
            If Controls("designationP" & j).value = "Remplacement de soufflet de cardan" Then
                  quantite.visible = True
                  Controls("quantiteP" & j).visible = true
            End if
Next

Mais ce code ne marche pas donc je sollicite votre aide
 

soenda

XLDnaute Accro
Re : Poroblème affichage de données

Bonsoir à tous

@lironic
Je me suis un peu embarqué avec ton problème, mais il y avait tellement de choses à voir...
Alors pour répondre à la question initiale effectue les modif suivantes (à partir de ton programme initial):

Ajoute la sub suivante
Code:
Private Sub Position(ByVal p%)
    
    If Controls("designationP" & p).Value = "Remplacement soufflet de cardan" Then
        quantite.Visible = True
        Controls("quantiteP" & p).Visible = True
    End If
    
End Sub
Dans les Sub designationPx_Change, ajoute la ligne en bleu
Code:
Private Sub designationP[COLOR=Red][B]2[/B][/COLOR]_Change()
    If flag = True Then Exit Sub
    [COLOR=Blue][B]Position[/B][/COLOR] [COLOR=Red][B]2[/B][/COLOR]
    Call maj(designationP2.Value, 2)
End Sub
Dans la sub nbprestations_Change(), modifie comme suit
Code:
...
[COLOR=Blue]designation.Visible[/COLOR] [COLOR=Blue]= True[/COLOR] 'Déplacer cette ligne ici
For j = 1 To 12
    Controls("LabelP" & j).Visible = (j <= i)
    Controls("designationP" & j).Visible = (j <= i)
    [COLOR=Blue]Supprimer le if.[/COLOR]..
Next j
Là, théoriquement ça marche... :)

Edit : Le programme que j'ai posté précédemment, est sacrément bogué. :(

A plus
 

Discussions similaires

Réponses
11
Affichages
347

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 988
dernier inscrit
Feonix