Programme qui refuse de tourner

Résolu
eltigre85 Messages postés 35 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 12 septembre 2013 - 27 mars 2012 à 17:52
eltigre85 Messages postés 35 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 12 septembre 2013 - 28 mars 2012 à 01:28
Salut j'ai le programme qui refuse de tourner, pourriez vous y jeter un coup d'oeil
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim m As Integer
Dim n As Integer
Dim o As Integer
Dim p As Integer
Dim q As Integer
Dim s As Range
For n = 1 To 24
    If Cells(1, n + 7).Value ComboBox2.Value And ComboBox3.Value 1 Then
        For m = 0 To 7
        etab(m) = Cells(s.Row + m, 7 + n)
        MsgBox etab(m)
        Next m
        For o = 1 To 8
        If Controls("textbox" & (4 + o - 1)).Value <> "" Then
        s.Offset(o - 1, 7 + n) = Controls("textbox" & (4 + o - 1)).Value
        MsgBox s.Offset(o - 1, 7 + n)
        Else: s.Offset(o - 1, 7 + n) = etab(o - 1)
        End If
        Next o
        End If
Next n


Pourtant j'ai vérifier la condition if à la main ça à l'air d'être bon mais le programme ne donne aucun résultat.
Merci pour votre aide.

4 réponses

eltigre85 Messages postés 35 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 12 septembre 2013
28 mars 2012 à 01:28
Merci ucftou
C'est moi qui ai mal mis les instruction dans le if.
En fait j'avais remplis la combobox avec "'1" alors que dans l'instruction if j'ai omis le "'" ce qui fait aucun résultat. Il faut faire attention VBA est très bête lol
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 mars 2012 à 18:01
Bonjour,
1) Dans quelle procédure évènementielle as-tu mis ce code ?
2) où et comment as-tu déclaré etab ? Qu'est etab ?
3) où se trouvent (sur quoi ?) tes texboxes en cause ?

As-tu une ligne dénoncée en erreur ? Si oui : laquelle ?
Tu constates que ta question est bourrée d'imprécisions et que la conséquence est donc l'obligation de te les demander

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
eltigre85 Messages postés 35 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 12 septembre 2013
27 mars 2012 à 20:15
-Le programme est utilisé dans un useform
-etab a été declaré comme variant
-les textbox sont dans le userform
pour faire plus simple voici le programme:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim m As Integer
Dim n As Integer
Dim o As Integer
Dim p As Integer
Dim q As Integer
Dim s As Range
Dim etab(8) As Variant
Set s = Feuil1.Range("A2:A500").Find(Null)
If ComboBox4.Value = "" Then
MsgBox "Veuillez spécifier la zone"
End If
For i = 0 To 7
If ComboBox4.Value <> "" Then
s.Offset(i, 0) = ComboBox4.Value
End If
Next i
If ComboBox1.Value = "" Then
MsgBox "Veuillez spécifier la commune"
End If
For j = 0 To 7
If ComboBox1.Value <> "" Then
s.Offset(j, 1) = ComboBox1.Value
End If
Next j
If ComboBox5.Value = "" Then
MsgBox "Veuillez spécifier le type de chantier"
End If
For k = 0 To 7
If ComboBox5.Value <> "" Then
s.Offset(k, 3) = ComboBox5.Value
End If
Next k
For n = 1 To 24
    If Cells(1, n + 7).Value ComboBox2.Value And ComboBox3.Value 1 Then
        For m = 0 To 7
        etab(m) = Cells(s.Row + m, 7 + n)
        MsgBox etab(m)
        Next m
        For o = 1 To 8
        If Controls("textbox" & (4 + o - 1)).Value <> "" Then
        s.Offset(o - 1, 7 + n) = Controls("textbox" & (4 + o - 1)).Value
        MsgBox s.Offset(o - 1, 7 + n)
        Else: s.Offset(o - 1, 7 + n) = etab(o - 1)
        End If
        Next o
        End If
Next n
end sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 mars 2012 à 20:33
Bon.
Ce code ne provoquera aucune erreur.
Pour ce qui est du "mais ne marche pas", par contre, faudrait savoir ce qu'il est supposé faire, selon toi (et nous n'en savons rien, pas plus que nous ne savons si les conditions sont vérifiées en fonction des données !)) !
Une chose appelle mon attention :
Tes msgbox pour alerter, mais tu continues malgré tout. Et là, quand même, on se demande pourquoi même alerter ! C'est volontaire ? Car tellement éloigné du B.A.BA !

De toutes manières et à défaut de connaître avec précision les tenants (tes données) et les aboutissants, tu seras seul à savoir pourquoi, avec tes "tenants", tu n'as pas tes "aboutissants". Le mode pas à pas devrait t'éclairer.

Il y a autre chose, que je n'aime pas : tu es sur un userform et toutes tes références du type cells( ....) ne peuvent que concerner la feuille active, sans que tu ne sois certain de ce que la feuille active est bien celle que tu veux modifier.
Voilà ! Tout cela fait beaucoup trop de choses distinctes, concernant une matière que tu es seul à avoir entre tes mains, pour pouvoir en discuter valablement sans faire un lot indéfini d'hypothèses.
Bonne chance


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous