Formule - macro - Page 2

Résolu
  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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+
    1. Contributeur
      Tu peu mettre en dessous de l'autre macro, mais faut ajouter une ligne
          Sheets("Produits").select

      juste au début.
      A+
      1. Contributeur
        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+
        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...
          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
            1. Contributeur
              Apparement tu oublie les points...
              If .Cells(lig, 7).Value >= "0" And .Cells(lig, 9).Value >= "0" Then
              A+
              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
                1. Contributeur
                  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+
                  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
                    1. Contributeur
                      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
                      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?
                        1. Contributeur
                          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.
                          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!
                            Précédent
                            • 1
                            • 2

                            Discussions similaires

                            exo pix

                            2 réponses