Utilisation de If Me.Controls("textbox" & i).Text <> 1 then

Bonjour à tous,

j'essaye de lui faire vérifier que le contenu des 31 premières textbox, si diffèrent de 1 ou de "" sort de la sub mais cela ne fonctionne pas.

j'ai essayer dans l'autre sens, si est =. là ça fonctionne mais il me copie quand même la données non valide.

Je vous remercie par avance de me mettre sur la bonne piste.

bonne journée à tous

daniel

Private Sub CommandButton4_Click() ' Bouton enregistrer
Application.ScreenUpdating = False
Dim i
Dim j

Dim R

j = Me.ComboBox1.ListIndex + 5

        If MsgBox("Confirmez-vous la modification ?", vbYesNo, "Demande de confirmation") = vbYes Then
            For R = 1 To 31

                If Me.Controls("textbox" & R).Text <> 1 Or Me.Controls("textbox" & R).Text <> "" Then
                    MsgBox "Données non valides"
                     Exit Sub
                 Else
                    With Worksheets("SUIVI CONGES ET ABSENCES ANNUEL")
                       With .Range("G" & j & ":AK" & j)
                           For i = 1 To 31
                               .Cells(i) = Me.Controls("TextBox" & i).Value
                           Next i
                       End With
                    End With

                 End If

            Next
                MsgBox "Données modifiées"
         End If

    Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex + 1
    Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex - 1
Application.ScreenUpdating = True
End Sub

Bonjour, le "Next" est mal placé ; la macro continue aprés le control toutes les textbox.

Private Sub CommandButton4_Click() ' Bouton enregistrer
Application.ScreenUpdating = False
Dim i
Dim j

Dim R

j = Me.ComboBox1.ListIndex + 5

 If MsgBox("Confirmez-vous la modification ?", vbYesNo, "Demande de confirmation") = vbYes Then
  For R = 1 To 31

  If Me.Controls("textbox" & R).Text <> 1 Or Me.Controls("textbox" & R).Text <> "" Then
                    MsgBox "Données non valides"
                    Exit Sub
End if   

Next
                    With Worksheets("SUIVI CONGES ET ABSENCES ANNUEL")
                       With .Range("G" & j & ":AK" & j)
                           For i = 1 To 31
                               .Cells(i) = Me.Controls("TextBox" & i).Value
                           Next i
                       End With
                    End With

 MsgBox "Données modifiées"
         End If

    Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex + 1
    Me.ComboBox1.ListIndex = Me.ComboBox1.ListIndex - 1
Application.ScreenUpdating = True
End Sub

Merci d'avoir regarder mon problème,

mais non cela m'affiche toujours données non valide et il me fait sortir de la sub.

j'aurais pensé à une déclaration de variable mais je ne m'y connais pas vraiment.

d'avance merci

bonjour à tous,

textbox.text retourne une valeur de type string, teste avec <>"1"

If Me.Controls("textbox" & R).Text <> "1"

Bonjour h2so4

non plus

merci

Bonjour

Essayez en mettant en T majuscule à "textbox" --> Textbox

Si cela ne fonctionne toujours pas, essayez de remplacer le OR par AND

Cordialement

Bonjour,

bonjour Dan,

j'ai zappé le OR, en effet avec le OR cette* (remplace la) condition est toujours vraie.

donc

If Me.Controls("textbox" & R).Text <> "1" And Me.Controls("textbox" & R).Text <> "" Then
                    MsgBox "Données non valides"

Bonjour H2So4,

j'ai zappé le OR, en effet avec le OR la condition est toujours vraie.

Pas de soucis, c'est juste que j'ai déjà eu le cas.
On a pas le fichier, donc je pense qu'il doit aussi regarder du coté du T de textbox. Cela peut aussi jouer des tours

Re.

Ouiii parfait j'ai mis les majuscules aux textbox et changer or par and !

Un grand grand grand merci.

daniel

Bonjour Dan et bien vu j'ai même pas capté le "Or" non plus

@daniel1965

Rechercher des sujets similaires à "utilisation controls textbox text then"