Vba excel macro soustraction de colones

Résolu
rouzb -  
Bidouilleu_R Messages postés 1209 Statut Membre -
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. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
    2
    1. rouzb
       
      oui ca marche merci bcp!
      0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    Si cela te convient tu coches résolu
    merci
    2
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Dans la troisième tu mets la formule =A1-B1
    puis
    if Cells(ligne,"C") = 0 then rows(ligne).delete
    0
  4. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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+
    0
    1. rouzb
       
      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
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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)
    0
    1. rouzb
       
      tu as bien compris je ne veux supprimer les lignes que dans la feuille 3
      0
  7. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    C'est en cours ..... je finis
    0
  8. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    '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
    0