Vba excel macro soustraction de colones

Résolu
Bonjour,

je cherche a creer une macro qui permette de soustraire 2 colonnes pour mettre le résultat dans une troisieme et par la suite supprimer les lignes dont le resultat de la soustraction est zero. Je ne sais absolument pas quoi faire ni par ou commencer..

Merci d'avance
Configuration: Windows XP
Firefox 3.0.5

7 réponses

  1. Excuse-moi j'ai fait une erreur
    ne tiens pas compte du code dans le post précédent
    je suis désolé

    celui là marche

    Sub supprime_les_differences_nulle()
    Dim Nblig As Integer
    Dim C As Variant
    Sheets("Feuil2").Select
    Nblig = Range("C2").CurrentRegion.Rows.Count
    ' je suppose que les données commence en C2
    'je vais sur la feuille 3
    Sheets("Feuil3").Select
    For Each C In Range("C2:C" & Nblig)
    num_ligne = C.Row ' le numero de la ligne
    C.Value = Sheets("feuil1").Cells(num_ligne, 3) - Sheets("feuil2").Cells(num_ligne, 3)
    If C.Value = 0 Then

    End If
    Next
    For i = 2 To Nblig
    Cells(i, 3).Select
    If ActiveCell.Value = 0 Then
    ActiveCell.Select
    Selection.EntireRow.Delete
    i = i - 1
    End If

    Next
    s = MsgBox("Fin du traitement", vbExclamation, "Suppression si difference à 0")

    End Sub
    1. oui ca marche merci bcp!
  2. Contributeur
    bonjour

    Dans la troisième tu mets la formule =A1-B1
    puis
    if Cells(ligne,"C") = 0 then rows(ligne).delete
    1. Tout d'abord ce n'est pas très clair!

      une macro qui permette de soustraire 2 colonnes
      est-ce qu'il s'agit de deux cellules ou d'un ensemble de cellules
      par exemple soustraire la cellule A8 et A9
      et si A8-A9 = 0 alors supprimer A8 et A9

      Explique un peu mieux ou bien donne un fichier d'exemple via ci-joint.com

      A+
      1. desole, je detaille :

        j'ai dans ma feuille un bouton (controle de formulaire). En cliquant dessus, je veux qu'il effectue la soustraction de toutes les cellule de la colonne C de la feuille 1 par les cellules de la colonne C de la feuille 2, et qu'il mette le résultat dans la colonne C de la feuille 3 et que si le réultat est nul, il supprime la ligne entière dans la feuille 3. Par toutes les cellules, j'entends qu'il fasse : Feuil1!C2-'Feuil2'!C2, puis Feuil1!C3-'Feuil2'!C3, etc...

        voila j'espere que c'est clair
    2. Oui c'est plus clair!

      Encore une question!
      si
      Feuil1!C2-'Feuil2'!C2=0 on doit supprimer la ligne 2:2 en feuil3
      Est-ce vrai en feuille 1 et feuil2 ( je comprends que non, mais je préfère être sur)
      1. tu as bien compris je ne veux supprimer les lignes que dans la feuille 3
    3. 'tu places ce code dans un module
      ' attention si tu executes 2 fois le code fais attention
      que la plage en sortie soit Vide

      Sub supprime_les_differences_nulle()
      Dim Nblig As Integer
      Dim C As Variant
      Sheets("Feuil2").Select
      Nblig = Range("C2").CurrentRegion.Rows.Count
      ' je suppose que les données commence en C2
      'je vais sur la feuille 3
      Sheets("Feuil3").Select
      For Each C In Range("C2:C" & Nblig)
      num_ligne = C.Row ' le numero de la ligne
      C.Value = Sheets("feuil1").Cells(num_ligne, 3) - Sheets("feuil2").Cells(num_ligne, 3)
      If C.Value = 0 Then
      Selection.EntireRow.Delete
      End If

      Next
      s = MsgBox("Fin du traitement", vbExclamation, "Suppression si difference à 0")

      End Sub

      A+

      N'oublie pas de mettre en résolu si cela te convient.
      A+
      R