Formule - macro - Page 2

Résolu
Précédent
  • 1
  • 2
  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Pas de problème
    Tu ajoute cette petite sub
    Sub ResultatPartiel(lig As Long)
        If Cells(lig, 7) And Cells(lig, 9) Then
            If (Cells(lig, 9) / Cells(lig, 7)) < 0.97 Then
                Cells(lig, 14) = "NCR"
            Else
                Cells(lig, 14) = "OK"
            End If
        Else
            Cells(lig, 14) = ""
        End If
    End Sub


    et après End With tu met
        ResultatPartiel Ligne

    A+
    0
  2. tchulio Messages postés 174 Statut Membre 1
     
    je l'ajoute dans un module ou dans mon userform?
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu peu mettre en dessous de l'autre macro, mais faut ajouter une ligne
        Sheets("Produits").select

    juste au début.
    A+
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    ou bien...
    With Sheets("produits") 
        .Cells(ligne, 9) = TextBox1.Value
        .Cells(ligne, 12) = TextBox_visa.Value
        .Cells(ligne, 10) = CheckBox1.Value
        .Cells(ligne, 13) = Textbox2.Value
        .Cells(ligne, 21) = TextBox3.Value
        .Cells(ligne, 19) = TextBox5.Value
        .Cells(ligne, 20) = TextBox7.Value
        .Cells(ligne, 18) = TextBox9.Value
        .Cells(ligne, 17) = TextBox10.Value
        .Cells(ligne, 11) = CDate(TextBox11.Value)
        .Cells(ligne, 22) = ComboBox2
        .Cells(ligne, 24) = Format(Now, "DD/MM/YY HH:MM:SS")
        .Cells(ligne, 23) = Application.UserName
        .Cells(ligne, 25) = TextBox12.Value
        .Cells(ligne, 8) = ""
    
       If .Cells(ligne, 7) And .Cells(ligne, 9) Then
            If (.Cells(ligne, 9) / .Cells(ligne, 7)) < 0.97 Then
                .Cells(ligne, 14) = "NCR"
            Else
                .Cells(ligne, 14) = "OK"
            End If
        Else
            .Cells(ligne, 14) = ""
        End If
    
    End With 

    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tchulio Messages postés 174 Statut Membre 1
     
    ok j'ai compris pardon.

    Mais par contre ça ne fonctionne pas. Quand je clique sur valider, mes ligne s'insère, mais le calcul ne se fait pas...
    0
  7. tchulio Messages postés 174 Statut Membre 1
     
    ok je regarde ça cet aprem merci
    0
  8. tchulio Messages postés 174 Statut Membre 1
     
    BOnjour, désolé de répondre seulement maintenant, beaucoup d'urgence au travail et pas le temps ce w.e...

    Donc j'ai essayé, ça marche quand je rentre mes données avec le USF, par contre même problème qu'auparavant, si la quantité ok est "0" , il n'y a rien qui s'affiche.

    et si je mets cette ligne,
    If Cells(lig, 7).Value >= "0" And Cells(lig, 9).Value >= "0" Then
    ça bug, ça ne marche pas avec le USF,

    Merci
    0
  9. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Apparement tu oublie les points...
    If .Cells(lig, 7).Value >= "0" And .Cells(lig, 9).Value >= "0" Then
    A+
    0
  10. tchulio Messages postés 174 Statut Membre 1
     
    Ok donc ce code fonctionne maintenant parfaitement lorsque je fait les saisie avec le USF, par contre quand je fait un calcul total de la feuille avec ce code, si j’ai une valeur dams ma colonne 7 et pas de valeur dans la 9, ça m’affiche « NCR » dans la colonne 14. Normalement il n’y a rien qui doit s’afficher.

    A mon avis le pb vient de cette ligne

    If Cells(Lig, 7).Value >= 0 And Cells(Lig, 9).Value >= 0 Then

    J’ai mis un >=0 car si ma quantité ok est “0”, il faut que ça affiche NCR.

    Sub Resultat()
    Dim Lig As Long
    Dim Col As Long
    Sheets("Produits").Select
    For Lig = 2 To Range("C65536").End(xlUp).Row
    If Cells(Lig, 7).Value >= 0 And Cells(Lig, 9).Value >= 0 Then
    If (Cells(Lig, 9) / Cells(Lig, 7)) < 0.99 Then
    Cells(Lig, 14) = "NCR"
    Else
    Cells(Lig, 14) = "OK"
    End If
    Else
    Cells(Lig, 14) = ""
    End If
    Next Lig
    End Sub

    merci
    0
  11. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ca devrait aller avec...
    Sub Resultat()
    Dim Lig As Long
    Dim Col As Long
        Sheets("Produits").Select
        For Lig = 2 To Range("G65536").End(xlUp).Row
            If Cells(Lig, 7) > 0 Then
                If Cells(Lig, 9) = "" Or Cells(Lig, 9) = 0 Then
                    Cells(Lig, 14) = "NCR"
                ElseIf (Cells(Lig, 9) / Cells(Lig, 7)) < 0.97 Then
                    Cells(Lig, 14) = "NCR"
                Else
                    Cells(Lig, 14) = "OK"
                End If
            Else
                Cells(Lig, 14) = ""
            End If
        Next Lig
    End Sub

    A+
    0
  12. tchulio Messages postés 174 Statut Membre 1
     
    Avec ce code aussi , lorsqu'il n'y a pas de quantité OK en "9", ça m'inscrit "NCR".

    En fait ce qu'il faut c'est que quand "9" = 0 il y ait NCR
    et que quand "9" est vide, il n'y ait rien qui ne s'affiche
    0
  13. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu dit.....
    Donc j'ai essayé, ça marche quand je rentre mes données avec le USF, par contre même problème qu'auparavant, si la quantité ok est "0" , il n'y a rien qui s'affiche.

    Avec ce code aussi , lorsqu'il n'y a pas de quantité OK en "9", ça m'inscrit "NCR".

    Décide une bonne fois pour toute Grrrrr
    0
  14. tchulio Messages postés 174 Statut Membre 1
     
    Non, quand il y a "0" en quantité ok, il y a NCR. ça on est d'accord.

    Par contre s'il il n'y a pas de quantité ok, s'il il n'y a rien d'écrit, si la case est vide quoi, là il ne devrait rien y avoir.

    tu comprends mieux ce que je veux dire?
    0
  15. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Je n'ai pas réalisé plutôt, mais quand tu modifie la ligne ...
    If Cells(lig, 7).Value >= "0" And Cells(lig, 9).Value >= "0" Then
    Réfléchi un tout.. tout...tout petit peu...
    La condition où il n'y à rien dans aucune des cellules ne se produira jamais car tu met (c'est toi qui modifie)
    7=>0 et 9=>0 CE SERRA TOUJOURS VRAI, cogite la-dessus et tu trouverras une solution. Si pas ont en rediscuterras.
    A+
    PS: Il faut aussi que tu réfléchisse un peu et jusque maintenant je n'ai fait que te PONDRE la solution ce qui n'était pas te rendre service.
    0
  16. tchulio Messages postés 174 Statut Membre 1
     
    Je suis vraiment nul...

    Des on cherche compliqué quand c'est tout simple....

    Il y avait juste à mettre les "" autour des "0", maintenant ça fonctionne parfaitement...

    Encore merci à toi pour toute ton aide!
    0
Précédent
  • 1
  • 2