vba if
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

vba if



  1. #1
    please_help

    Red face vba if


    ------

    bonjour à tous j'ai fait un programme ou j'utilise l'instruction if
    mais cette instruction ne fonctionne pas la première fois
    c'est if m>a then
    ...
    else
    ...
    end if

    la première fois j'ai m<a mais le programme rentre comme même dans if et c'ets seulement à partir de deuxièùme fois qu'il respecte la condition comment je peux forcer que meme la première fois il prends en compte cette condition merci d'avance

    -----

  2. #2
    Fred des montagnes

    Re : vba if

    Salut,

    Peux-tu poster ton bout de code? Comment déclares-tu tes variables?? Utilises-tu l'option "Option explicit"?? etc..

  3. #3
    whoami

    Re : vba if

    Bonjour,

    Décidément, il faudra imposer que les questionneurs livrent une boule de cristal à tous ceux qui veulent bien tenter de répondre.

  4. #4
    please_help

    Re : vba if

    c'est un code qui doit etre testé sur solidworks voilà le code
    Private Sub yes_Click()
    Dim swApp As Object

    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long




    Set swApp = _
    Application.SldWorks

    Set Part = swApp.NewDocument("C:\ProgramD ata\SolidWorks\SolidWorks 2014\templates\Part.prtdot", 0, 0, 0)

    swApp.ActivateDoc2 "Pièce1", False, longstatus
    Set Part = swApp.ActiveDoc
    Set Part = swApp.ActiveDoc
    Dim myModelView As Object
    Set myModelView = Part.ActiveView
    myModelView.FrameLeft = 0
    myModelView.FrameTop = 22
    Set myModelView = Part.ActiveView
    myModelView.FrameWidth = 1291
    myModelView.FrameHeight = 582
    boolstatus = Part.Extension.SelectByID2("Fr ont Plane", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
    Part.ShowNamedView2 "*Face", 1
    Part.ClearSelection2 True
    Dim skSegment As Object

    e = (TextBox2.Value) / 1000
    n = TextBox1.Value
    a = 2 * n - 1
    m = n
    h = (e * Sqr(3)) / 2
    x1 = -(e * (n - 1)) / 2
    x = x1
    y = (n - 1) * h
    d = (TextBox3.Value) / 1000
    b = (n - 1) * e + e / 2
    ep = (ListBox1.Value) / 1000
    Set skSegment = Part.SketchManager.CreateCircl eByRadius(0, 0, 0, b)
    Part.ClearSelection2 True

    For i = 1 To a
    For t = 1 To m

    Set skSegment = Part.SketchManager.CreateCircl eByRadius(x, y, 0#, d / 2)

    Part.ClearSelection2 True

    Part.SketchManager.AddToDB = True

    x = x + e
    Next


    If m > a = True Then
    x = x1 + e / 2
    m = m - 1

    Else
    x = x1 - e / 2
    m = m + 1


    End If
    x1 = x
    y = y - h

    Next

    End Sub

  5. A voir en vidéo sur Futura
  6. #5
    azad

    Re : vba if

    Bonsoir
    Tu avais, il y a peu, des soucis avec l'instruction Goto. A ce sujet je t'ai conseillé de relire la méthode de déclaration des variables. Alors,, bien sûr, je suis persuadé que tu l'as fait.
    Alors quand tu écris : If m > a = True Then es-tu certain de ce que tu demandes à ton If ?

  7. #6
    please_help

    Re : vba if

    oui j'ai laissé tombé le goto j'ai pas réussi à faire marcher avec goto mais sinon oui je suis certain pourquoi ??

  8. #7
    azad

    Re : vba if

    Et là, maintenant as-tu pigé le sens de mon post ?

  9. #8
    please_help

    Re : vba if

    si vous parlez de goto oui mais là jvois pas le problème avec if

  10. #9
    please_help

    Re : vba if

    j'ai meme esseyé avec if m>a then mais ça marche tjr pas la première fois

  11. #10
    azad

    Re : vba if

    T'es un têtu toi !
    C'est bien beau de nous refiler un bout de code, mais t'es pas avec un projecteur de 200W dans les yeux avec quatre types en bras de chemise en train de t'interroger. Alors ton code il ne vaut rien tant que l'on ne saura pas (par exemple) ce qu'il y a dans ton textBox1
    tu écris :
    n = TextBox1.Value
    a = 2 * n - 1
    m = n
    ….
    c'est pas très joli tout ça.
    le compilateur comprend a=2n -1 mais moi : a=2(n-1)
    Alors si tu veux que je continue avec toi expliques moi pourquoi dans ton premier code
    If m > a = True Then nest pas correct. Qu'au moins je n'ai pas l'impression de parler à un robot.

  12. #11
    please_help

    Re : vba if

    Vous etes d'accord que quand on mets: si m>a faire( ...) sinon faire (...)

    alors si M<A ,on fait ce qui est après sinon ,
    ce qui se passe pas bien avec mon programme, c'est que quand je lance mon programme et que j'ai comme valeur n=4 a=4*2-1=7 et m=n
    donc m<a car 4<7 normalement le programme doit faire ce qui est après sinon mais là ça fonctionne pas comme ça je ne pourrais pas mieux expliquer que ça j'espère que vs avez compris

  13. #12
    azad

    Re : vba if

    OK.

    Essaies alors d'écrire :
    if (m>a) then
    …..
    certains compilateurs sont intraitables.

  14. #13
    azad

    Re : vba if

    Mais le mieux à faire est encore de placer un point d'arrêt devant l'instruction If et de regarder la valeur des variables m et a quand le programme arrive à ce point.

  15. #14
    please_help

    Re : vba if

    j'ai essayé avec if(m>a) than ça n'a pas marché et pour le point d’arrêt c'est ce que je fait depuis le début pour voir les valeurs des variables et les valeurs sont j'ai bien m<a

  16. #15
    please_help

    Re : vba if

    c'est bon j'ai résolu le problème merci à vous

  17. #16
    azad

    Re : vba if

    Bien, aurais-tu la gentillesse de me dire où était l'erreur ?